如何在一个if语句中调用一个函数(vba)

我想在我的if语句中调用一个函数。 该函数被称为classyear,并在if后面。 我试图通过一个时间表,看看每年属于哪个class级。 所以如果以1结尾,它将被计数。 有谁知道我会怎么去调用该函数? 任何帮助表示赞赏

Public Sub time() Dim rgTimeTable As Range, rgClass As Range, counter As Integer Set rgTimeTable = Range("B3, N11") For Each rgClass In rgTimeTable If rgClass.Value = classyear Then counter = counter + 1 ' classyear is the function Next rgClass MsgBox test ' also a function End Sub 

我试图调用函数的编辑代码

 Public Function classyear(class As String) As Integer Dim yr As String yr = Right(class, 1) If IsNumeric(yr) Then classyear = yr Else classyear = 0 End Function 

你的classyear函数需要一个stringinput,所以你需要给它一个。 就像是:

 If CInt(rgClass.Value) = classyear("Year1") Then counter = counter + 1 

你也可以整理你的classyearfunction:

 Public Function classyear(class As String) As Integer On Error Resume Next 'if error classyear will return 0 classyear = CInt(Right(class, 1)) End Function 

你可以在里面调用一个Sub,如下所示:

(使用函数,如果你想返回一些值,其他使用Sub)

 if (...) classyear() '<--Calling the Sub defined below End if Private Sub classyear() . . End Sub 

希望这是你在找什么。