VBA: 无法将函数的返回值赋给变量
VBA: Cannot assign a function's returned value to a variable
我的一张工作表中有以下 VBA 代码(即不在模块中):
Option Explicit
Public timing As String
Sub ButtonLoan1_Click()
timing = check_timing()
Application.Run ("loan_" & timing & "_req01")
End Sub
函数 check_timing
在一个模块中定义并且工作正常:
Function check_timing()
If ActiveSheet.Range("B5") = "Q1 and Q3" Then
timing = "q1q3"
ElseIf ActiveSheet.Range("B5") = "Q2 and Q4" Then
timing = "q2q4"
End If
Exit Function
End Function
然而,运行 ButtonLoan1_Click()
Sub returns 一个错误,因为变量 timing
是空的,即它没有从函数 [=13] 中获取它的值=],正如我所愿。我做错了什么?
我的猜测是你应该使用 check_timing
而不是 timing
所以 VBA 知道这是函数返回给之前调用它的人的内容。
Function check_timing()
If ActiveSheet.Range("B5") = "Q1 and Q3" Then
check_timing = "q1q3"
ElseIf ActiveSheet.Range("B5") = "Q2 and Q4" Then
check_timing = "q2q4"
End If
Exit Function
End Function
我的一张工作表中有以下 VBA 代码(即不在模块中):
Option Explicit
Public timing As String
Sub ButtonLoan1_Click()
timing = check_timing()
Application.Run ("loan_" & timing & "_req01")
End Sub
函数 check_timing
在一个模块中定义并且工作正常:
Function check_timing()
If ActiveSheet.Range("B5") = "Q1 and Q3" Then
timing = "q1q3"
ElseIf ActiveSheet.Range("B5") = "Q2 and Q4" Then
timing = "q2q4"
End If
Exit Function
End Function
然而,运行 ButtonLoan1_Click()
Sub returns 一个错误,因为变量 timing
是空的,即它没有从函数 [=13] 中获取它的值=],正如我所愿。我做错了什么?
我的猜测是你应该使用 check_timing
而不是 timing
所以 VBA 知道这是函数返回给之前调用它的人的内容。
Function check_timing()
If ActiveSheet.Range("B5") = "Q1 and Q3" Then
check_timing = "q1q3"
ElseIf ActiveSheet.Range("B5") = "Q2 and Q4" Then
check_timing = "q2q4"
End If
Exit Function
End Function