用VBA在EXCEL中写了个上班签到程序

直接上代码了…~(@^_^@)~

 

Sub 求和()
Cells(2, 5) = Cells(2, 1) + Cells(2, 3)
End Sub


Sub 签到()
    '定义变量
    Dim GetTime As Date '获取当前日期
    Dim GetTodayNum As Integer '获取今天是几号
    Dim GetNowHourNum As Integer '获取现在是几点
    Dim AmOrPm As Integer '判断赋值行
    Dim CellStr As String '判断指定单元格
    Dim N As String '判断指定单元格
    '获取参数
    GetTime = Format(Time, "hh:mm:ss") 'Now()
    GetTodayNum = Day(Now())
    GetNowHourNum = Hour(Time)
    
    '判断是上午
    If GetNowHourNum < 12 Then
        AmOrPm = 1
    Else
        AmOrPm = 3
    End If
    
    '判断签到的单元格是否已经签到过了
    '判断是上午还是下午
    If GetNowHourNum < 12 Then
        N = "A" + CStr(GetTodayNum)
        CellStr = Range(N)
    Else
        N = "C" + CStr(GetTodayNum)
        CellStr = Range(N)
    End If
    
    If CellStr = "" Then
        '对指定的单元格进行赋值
        Cells(GetTodayNum, AmOrPm) = GetTime
        '提醒成功
        MsgBox "签到成功"
    Else
        '已经签到过
        MsgBox "已签到"
    End If
End Sub
Sub 签退()
    '定义变量
    Dim GetTime As Date '获取当前日期
    Dim GetTodayNum As Integer '获取今天是几号
    Dim GetNowHourNum As Integer '获取现在是几点
    Dim AmOrPm As Integer '判断赋值行
    Dim CellStr As String '判断指定单元格
    Dim N As String '判断指定单元格
    '获取参数
    GetTime = Format(Time, "hh:mm:ss") 'Now()
    GetTodayNum = Day(Now())
    GetNowHourNum = Hour(Time)
    
    '判断是下午
    If GetNowHourNum < 12 Then
        AmOrPm = 2
    Else
        AmOrPm = 4
    End If
    
    '判断签到的单元格是否已经签到过了
    '判断是上午还是下午
    If GetNowHourNum < 12 Then
        N = "B" + CStr(GetTodayNum)
        CellStr = Range(N)
    Else
        N = "D" + CStr(GetTodayNum)
        CellStr = Range(N)
    End If
    
    '如果为空表示没有前到过
    If CellStr = "" Then
       '对指定的单元格进行赋值
        Cells(GetTodayNum, AmOrPm) = GetTime
        '提醒成功
        MsgBox "签退成功"
    Else
        '已经签到退
        MsgBox "已签退"
    End If
End Sub

初来乍到的我以后要努力多学学技术咯

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章