我正在尝试运行此代码,但在编译时会不断给出错误消息
参数不是可选的
我正在使用名为csvRange
Sub CS()
csvRange()
End Sub
Function csvRange(FirstNum, SecondNum) As Double
i As Integer
For i = FirstNum.Value To SecondNum.Value
csvRange = csvRange & i & "+"
Next
End Function
任何人都可以提供帮助。
答案 0 :(得分:0)
你想调用csvRange()但是csvRange需要传递2个参数。 而你忘了保存返回值。
例如
Sub CS()
var first = 1
var second = 50
var result
result = csvRange(first, second)
End Sub
Function csvRange(FirstNum, SecondNum) As Double
i As Integer
For i = FirstNum.Value To SecondNum.Value
csvRange = csvRange & i & "+"
Next
End Function
答案 1 :(得分:0)
几句话: - 您调用没有参数值的函数csvrange,您没有将其定义为可选参数。 - 您对函数返回的值不执行任何操作 - i是一个整数,结果是double。将它们混合在你的下一个循环中是不好的做法
答案 2 :(得分:0)
您的代码需要一些修复:
1)为csvRange
使用适当的参数。
2)使用csvRange
的返回值(这不是强制性的,但通常在设计良好的代码中需要)。
3)声明csvRange
的参数类型。
4)您似乎正在使用csvRange
来获取String
。相应地更改代码。
你会使用像
这样的东西Sub CS()
Dim rng1 As Range, rng2 As Range
Set rng1 = ...
Set rng2 = ...
Set retval As String
retval = csvRange(rng1, rng2)
End Sub
Function csvRange(FirstNum As Range, SecondNum As Range) As String
i As Integer
csvRange = ""
For i = FirstNum.Value To SecondNum.Value
csvRange = csvRange & Cstr(i) & "+"
Next i
End Function
PS1:您的输出将以尾随" +
"结尾。也许这不是你想要的。
PS2:我没有系统来测试这段代码。