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 に答える