Zab*_*aba 5 excel vba excel-vba
我正在尝试编写一个将Range作为可选参数的函数.这是这种功能的最小例子:
Function Example(s As String, Optional r As Range) As String
Example = "Test"
End Function
Run Code Online (Sandbox Code Playgroud)
这没关系,可以编译VBA模块.但我很难找到如何为这个可选范围参数设置默认值,例如"B:B".
Function Example(s As String, Optional r As Range **= Range("B:B")**) As String
Example = "Test"
End Function
Run Code Online (Sandbox Code Playgroud)
这不编译.它抛出错误"需要常量表达式".
检查参数是否在函数内部传递,如果没有则将其设置在那里.
Function Example(s As String, Optional r As Range) As String
If r Is Nothing then Set r = Range("B:B")
Example = "Test"
End Function
Run Code Online (Sandbox Code Playgroud)
谢谢,斯科特给我指明了方向。我进一步搜索了这个,正确的方法似乎是这样的:
Function Example(s As String, Optional r As Range = Nothing) As String
If IsMissing(r) Then
r = Range("B:B")
End If
Example = "Test"
End Function
Run Code Online (Sandbox Code Playgroud)
我不明白为什么你可以为 pret 定义默认值
| 归档时间: |
|
| 查看次数: |
1740 次 |
| 最近记录: |