我'尝试'制作一个消息框,显示列中有多少存在和不存在,以便用户可以单击确定并复制数据或按取消并结束代码。
问题是我似乎无法让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
答案 0 :(得分:1)
Excel函数在WorkSheetFunctions
模块中可用,例如:
WorksheetFunctions.CountIf(Arg1 As Range, Arg2)
另外,将第二个参数作为字符串传递,而不是作为变量传递(VB的忙乱性质将为您声明该名称的未初始化变量,这可能不是您想要的。
因此,您的CountIf
行应该是:
WorksheetFunction.CountIf( Range("E:E") , "Present")