Excel 如何使用VBA省略arglist中的最后一个变量
调用具有3个参数(分别为a、b和c)的函数时,其中最后两个参数是可选的。Excel似乎迫使我始终提供最新的变量。当不提供参数c时,我收到一个编译错误/语法错误。Excel 如何使用VBA省略arglist中的最后一个变量,excel,vba,Excel,Vba,调用具有3个参数(分别为a、b和c)的函数时,其中最后两个参数是可选的。Excel似乎迫使我始终提供最新的变量。当不提供参数c时,我收到一个编译错误/语法错误。 但我不明白为什么? 如何从参数列表中省略最后一个变量 功能 Function passing_variables(a, Optional b = 1, Optional c = 1) passing_variables = a * b * c End Function 不起作用 Sub main_procedure C
但我不明白为什么? 如何从参数列表中省略最后一个变量 功能
Function passing_variables(a, Optional b = 1, Optional c = 1)
passing_variables = a * b * c
End Function
不起作用
Sub main_procedure
Cells(17, 2) = passing_variables(2, 4 , )
End Sub
有效
Sub main_procedure
Cells(17, 2) = passing_variables(2, ,4)
End Sub
可能的解决方法是提供指定变量,如所述,可能只是输入错误
Sub main_procedure
Cells(17, 2) = passing_variables(2, 4)
End Sub
也许只是打字错误
Sub main_procedure
Cells(17, 2) = passing_variables(2, 4)
End Sub
你只是省略了它。例如:
Sub Test()
Debug.Print MyFunction(Var1:=2, Var2:=4)
Debug.Print MyFunction(Var1:=2, Var2:=4, Inverse:=True)
End Sub
Function MyFunction(Var1 as Long, Var2 as Long, Optional Inverse as Boolean = False)
MyFunction = Var1 * Var2
If Inverse Then MyFunction = MyFunction * -1
End Function
在第一个调用中,省略了“Inverse”。您只需省略它即可。例如:
Sub Test()
Debug.Print MyFunction(Var1:=2, Var2:=4)
Debug.Print MyFunction(Var1:=2, Var2:=4, Inverse:=True)
End Sub
Function MyFunction(Var1 as Long, Var2 as Long, Optional Inverse as Boolean = False)
MyFunction = Var1 * Var2
If Inverse Then MyFunction = MyFunction * -1
End Function
在第一次调用中,省略了“Inverse”。第一次调用时,您不需要最后一个命令。您是对的。你不能那样做。您只需使用
Cells(17,2)=传递变量(2,4)
谢谢,我已经习惯了Python,我相信是这种情况。第一个,您不需要最后一个命令。您是对的。你不能那样做。你只需要使用Cells(17,2)=传递变量(2,4)
谢谢,我已经习惯了我认为是这种情况的Python。至少不是故意的:D,我习惯了不是这种情况的Python。至少不是故意的:D,我习惯了不是这种情况的Python。