用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

初來乍到的我以後要努力多學學技術咯

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