【发布时间】:2012-09-26 21:08:07
【问题描述】:
考虑以下 VBA 函数:
Function getFirstColumn(Optional sheetName As String) As Long
'In particular the IF statement below.
If sheetName = "" Or sheetName = Null Then sheetName = ActiveWorkbook.ActiveSheet.Name
With ActiveWorkbook.Worksheets(sheetName)
getFirstColumn = .Cells.Find("*", .Cells(1), xlFormulas, xlWhole, xlByColumns, xlNext).Column
If Err <> 0 Then getFirstColumn = 0
End With
End Function
使用此功能时,从第二张打开的工作表中使用它时没有问题。
但是,当代码更改为基于函数的等效代码'If IsEmpty(sheetName) Or IsNull(sheetName) Then sheetName = ActiveWorkbook.ActiveSheet.Name 时,如果我尝试使用不属于它的工作表中的函数,我会遇到问题:
错误的执行速度'9':
订阅fora do intervalo。
它们之间有什么区别?为什么会准确触发这样的错误?
【问题讨论】:
标签: excel null runtime-error string vba