以下のコードは、新しい列 (A) を作成し、それにヘッダー "Class" を付けてから、ブック内のすべてのワークシートの B の最後の行まで、列 A にワークシート名を入力します。後続のすべてのシートで処理された最初のシートから B の最後の行まですべてのワークシートを埋めることを除いて、機能しています。私は何を間違えましたか?各シートの B の最後の行によって塗りつぶしが決定されるのが好きです。
Option Explicit
Sub AddColumnFill()
Dim sht As Worksheet
For Each sht In ActiveWorkbook.Worksheets
sht.Range("A1").EntireColumn.Insert xlShiftToRight
sht.Cells(1, 1) = "Class"
sht.Range("A2:A" & Cells(Rows.Count, "B").End(xlUp).Row).Value = sht.Name
Next sht
End Sub