0

ユーザーが[OK]をクリックしてデータをコピーするか、[キャンセル]を押してコードを終了できるように、列に存在する人と不在の数を表示するメッセージボックスを作成しようとしています。

問題は、メッセージボックスに表示する前に欠席者と出席者の数をカウントする CountIf 部分が機能しないように見えることです。

私はコーディングにかなり慣れていないので、おそらく本当の混乱ですが、助けとIDに感謝します:)

Sub SubmitAttendance()

    Dim Response As String
    Dim Question As String
    Dim PresentNumber As String
    Dim AbsentNumber As String


    Function As Integer
        PresentNumber = Countif(Range("E:E"), Present)
        AbsentNumber = Countif(Range("E:E"), Absent)
    End Function


    Question = "PresentNumber Present and AbsentNumber Absent"
    Response = MsgBox(Question, vbOKCancel, "Register Totals")

    If Response = vbOK Then
        Range("E:E").Select
        Selection.Copy

        Range("F:ZZ").Find("").Select
        Selection.PasteSpecial
    Else
        Exit Function
    End If
End Sub
4

1 に答える 1

1

次のようなExcel 関数がWorkSheetFunctionsモジュールで使用できます。

WorksheetFunctions.CountIf(Arg1 As Range, Arg2)

また、変数としてではなく、文字列として 2 番目の引数を渡します (VB の多忙な性質により、その名前の初期化されていない変数が宣言されますが、これはおそらく必要なものではありません。

したがって、あなたのCountIf行は次のようになります。

WorksheetFunction.CountIf( Range("E:E") , "Present")
于 2013-04-10T14:14:11.267 に答える