我正在写一个函数,为我运行一些付款计算。我所做的是我喂食细胞的范围。传递单元格范围到VBA函数通过子工作,但不是在电子表格上
Function clinkmeup(Tuesdays As Excel.Range, Sundays As Excel.Range, Subbing As Excel.Range, Optional Other As Exce.Range = 0) As Variant
例如, Payment(A10:A12, B12:B14, C13:C17)
并且它从这些单元计算我的工资。此功能工作正常,当我把它从子为这里看到:
Sub lmao()
money = clinkmeup(Worksheets("Talent").Range("C9:C10"), Worksheets("Talent").Range("F9:F11", Worksheets("Talent").Range("H9:H12"))
MsgBox (money)
End Sub
但当我尝试(通过写=clinkmeup(C9:C10, F9:F11, H9:H12))
从电子表格中调用它,我得到一个值误差
我已经找遍了所有网的解决方案过去,但我还没有发现任何,是有关我自己的情况。
这已经折腾我了一段时间,因为我是新来的VBA和任何帮助,将不胜感激。
以下是我的整个代码:
Function clinkmeup(Tuesdays As Excel.Range, Sundays As Excel.Range, Subbing As Excel.Range, Optional Other As Excel.Range = 0) As Variant
Dim teaching As Double
Dim admin As Double
Dim seminar As Double
Dim elem As Variant
Dim sumo1 As Double
teaching = Worksheets("Talent").Range("Teacrate")
admin = Worksheets("Talent").Range("Admrate")
seminar = Worksheets("Talent").Range("Semrate")
sum1 = 0
For Each elem In Tuesdays
sum1 = sum1 + elem
Next elem
For Each elem In Sundays
sum1 = sum1 + elem
Next elem
For Each elem In Subbing
sum1 = sum1 + elem
Next elem
sum1 = (sum1/ 60) * teaching
sum2 = 0
If Not Other Is Nothing Then
For Each elem In Other
If elem.Offset(0, 1) = "S" Then
sum2 = (elem/60) * seminar + sum2
Else
sum2 = (elem/60) * admin + sum2
End If
Next elem
End If
clinkmeup = sum1 + su2
End Function
从不显示以图像形式的代码。始终将其包含在问题文本的正文中。 – skkakkar