我正在尝试在VBA中使用XNPV函数,但是,WorksheetFunction.XNPV不提供与速率对应的参数。我遇到了Application.Evaluate变通方法,但我遇到了我正在使用的定义速率的问题。我的代码给出了错误2029,我假设是由于Evaluate函数没有识别变量“low”
这是我的参考代码
Dim high As Double
Dim low As Double
Dim mid As Double
low = 1
high = 100
mid = (low + high) / 2
Debug.Print Application.Evaluate("=XNPV(low,CQ7:CQ367,E7:E367)")
答案 0 :(得分:2)
如果您想引用您在VBA代码中创建的变量,则必须将其连接到公式中,您不能将其明确地包含在字符串中,如上所述。
Debug.Print Application.Evaluate("=XNPV(low,CQ7:CQ367,E7:E367)")
应该是
Debug.Print Application.Evaluate("=XNPV(" & low & ",CQ7:CQ367,E7:E367)")