ループ内のWorksheetオブジェクトを置き換える文字列の配列を使用したいと思いますが、わかりません。Excel VBAループ内のオブジェクト名である文字列の配列
私はObjectとしてSheetXを宣言すると、私はバリアントとしてSheetXを宣言した場合、私は、オブジェクトに必要なエラー
を取得し、その後、私はコンパイルエラーを取得:アレイ上の各変数のバリアント
Sub DeleteAllData()
'SheetsArray = ["BalanceSheetTransposed", "IncomeStatementTransposed", "CashflowStatement"]
Dim SheetsArray(0 To 2) As Variant
Dim SheetX As Object
SheetsArray(0) = "BalanceSheetTransposed"
SheetsArray(1) = "IncomeStatementTransposed"
SheetsArray(2) = "CashflowStatement"
For Each SheetX In SheetsArray
lastrow = SheetX.Cells(Rows.Count, 1).End(xlUp).Row
lastcolumn = SheetX.Cells(1, Columns.Count).End(xlToLeft).Column
SheetX.Range("A2", Cells(lastrow, lastcolumn)).ClearContents
Next SheetX
End Sub
SheetsArray(IDX)は、文字列オブジェクトを返します。また、オブジェクト変数の値を設定するときに 'set objVar = ..'を使う必要があります。 – Whome
@Whome私は論理に従うことができたらいいと思っていますが、あなたが言ったことをコードに変換する方法を理解できていないようです。 –