0

我有一个问题想要解决,但我需要帮助。我有一个excel,里面有很多信息:date, activity, people, hours。每个人都写他的工作,所以桌子是这样的

20/06/2013  football  me  8.00 
21/06/2013  football  me  8.00
22/06/2013  basket    me  8.00 
21/06/2013  football  me  8.00
22/06/2013  basket    me  8.00 

从周一到周五。总小时数必须为 40,所有字段必须填写且不得为空!我需要一个自动启动的宏,例如在 12:00 并检查工作表中的每个人是否都正确。我该怎么做?有人可以帮助我吗?

4

1 回答 1

0

假设在每张工作表中,您在第 1 行中有一个行标题,在 A2:D6 中有数据。以下代码应以相应的形式返回错误msgbox

Sub test()
    Dim i As Integer
    Dim j As Integer
    Dim emp As Boolean
    Dim sum As Integer
    Dim ws As Worksheet

    For Each ws In ActiveWorkbook.Worksheets
        emp = False
        For i = 2 To 6
            For j = 1 To 4
                If IsEmpty(ws.Cells(i, j)) Then
                    emp = True
                    'Skip the rest of cells
                    GoTo fHandler
                End If
            Next j
        Next i

fHandler:

        If emp Then
            MsgBox "Some entries are empty in " & ws.Name
        End If

        sum = WorksheetFunction.sum(ws.Range("D2:D6"))
        If sum <> 40 Then
            MsgBox "Total hours not equal to 40 in " & ws.Name
        End If

    Next
End Sub
于 2013-09-26T13:36:41.023 回答