运行VBA代码时出错

时间:2015-06-22 09:48:00

标签: excel vba

我正在尝试运行此代码,但在编译时会不断给出错误消息

  

参数不是可选的

我正在使用名为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

任何人都可以提供帮助。

3 个答案:

答案 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:我没有系统来测试这段代码。