Luk*_*rry 1 excel vba excel-vba
我编写了一个函数来计算工作簿中特定工作表的2014年销售额,然后在特定单元格中打印2014年的总销售额.我可以调用VBA里面的函数,没问题.但是如果尝试使用工作簿中的函数,我会得到一个引用错误.我知道#REF!意味着公式指的是一个无效的单元格,我是否需要将某种值返回到我试图将该函数调用的单元格中?例如,如果我在单元格F25中输入sum2014("A1151"),我是否需要返回某种布尔值才能使函数正常工作?
Function sum2014(someaccount As String) As Currency
Dim i As Integer
Dim total As Currency
Dim ws As Worksheet
total = 0
Set ws = ActiveWorkbook.Worksheets(someaccount)
For i = 1 To 50
If ws.Range("A3").Offset(i, 0) >= DateValue("January 1, 2014") And ws.Range("A3").Offset(i, 0) <= DateValue("December 1, 2014") Then
total = total + ws.Range("A3").Offset(i, 1)
sum2014 = total
End If
Next
If Worksheets("New Charges").Range("C3").Offset(i, 0) = someaccount Then
Worksheets("New Charges").Range("E3").Offset(i, 0) = total
End If
For i = 1 To 5
If Worksheets("New Charges").Range("C3").Offset(i, 0).Value = someaccount Then
Worksheets("New Charges").Range("E3").Offset(i, 0).Value = total
End If
Next
End Function
Run Code Online (Sandbox Code Playgroud)
在VBA中调用函数的示例:
Sub testfunction()
sum2014 ("A1151")
sum2014 ("B1808")
sum2014 ("C3711")
sum2014 ("D3265")
End Sub
Run Code Online (Sandbox Code Playgroud)
我可以在VBA中调用该函数,它工作正常.计算销售额并将其放置在适当的位置.但我不能在工作簿中调用UDF.我正在调用函数
sum2014=("A1151")
Run Code Online (Sandbox Code Playgroud)
任何提示或建议将不胜感激.我可以使用do while来清理函数,或者直到循环而不是for循环,但是现在我只想让函数在工作簿内部工作然后再重新访问.