【发布时间】:2018-01-23 17:27:04
【问题描述】:
我正在尝试将可选参数的默认值设置为 Excel 的 Application.ActiveWorkbook 属性。这是我失败的尝试:
尝试的代码
Function SheetExists(ByVal sheetName As String, _
Optional ByVal targetBook As Workbook = Application.ActiveWorkbook) As Boolean
结果
这段代码导致了
需要常量表达式:编译错误
问题
- 什么是“常量表达式”?
- 还有其他方法可以将
ActiveWorkbook属性(和其他属性)用作函数和子例程中参数的默认值吗?
【问题讨论】:
-
1.常量表达式是编译器在编译代码之前可以推断出的表达式。
optional x = 5很好,因为5是一个常量,如果缺少x,编译器可以生成将5分配给x的代码,它不能对非常量值执行此操作,因为它们可以包含不同的值运行时的值。
标签: vba excel properties parameter-passing optional-parameters