次の 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
この機能を使用する場合、2 番目に開いたシートから使用する場合は問題ありません。
しかし、コードが関数ベースの同等のものに変更されると'If IsEmpty(sheetName) Or IsNull(sheetName) Then sheetName = ActiveWorkbook.ActiveSheet.Name
、関数を所有していないシートから関数を使用しようとすると問題が発生します。
Erro em tempo de execução '9':
サブスクライブ fora do intervalo.
それらの違いは何ですか?そして、なぜそのようなエラーが正確にトリガーされるのですか?