令我非常沮丧的是,我在第一个VBA项目的第一行似乎已经做错了。从本质上讲,我的项目已经停滞不前,因为我无法弄清楚为什么会这样做:
Function TestF(Values As Variant, Dates As Variant)
TestF = Values(2)
End Function
但这样做:
Function TestF(Values As Variant, Dates As Variant)
TestF = UBound(Values)
End Function
(我只想看到UBound
有效。所以,我删除了与项目无关的所有内容。)
其中Values
和Dates
均应为1维数组。 (或范围?或者问题是什么?)
如何修复第一段代码?
我用Google搜索,然后用Google搜索,但我找不到答案。
(Excel)'错误'是来自#VALUE!
的{{1}},其范围如下:
=testf(A2:A10,B2:B10)
答案 0 :(得分:1)
您需要将正确的参数传递给 UDF 。
这两个参数都是Range
。
Function TestF(Rng1 As Range, DatesRng As Range) As Long
Dim C As Range
Dim x As Long
For Each C In Rng1
If Trim(C.Value) <> "" Then ' make sure there isn't a blank cell in the middle of your Range
x = x + 1
End If
Next C
TestF = x - 1
End Function
如果Range
中间没有空单元格,则以下代码就足够了:
Function TestF(Rng1 As Range, DatesRng As Range) As Long
Dim C As Range
TestF = Rng1.Cells.Count - 1
End Function
答案 1 :(得分:0)
你可能想要:
receive_device()
另外,你应该声明你的函数假设要返回的内容,比如
TestF=Values(Ubound(Values))