0

下面的代码创建一个新列 (A),为其提供标题“类”,然后用工作表名称填充 A 列,直到工作簿中所有工作表的 B 的最后一行。它正在工作,除了它将所有工作表填充到 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
4

2 回答 2

2

利用

sht.Range("A2:A" & sht.Cells(sht.Rows.Count, "B").End(xlUp).Row).Value = sht.Name

代替

sht.Range("A2:A" & Cells(Rows.Count, "B").End(xlUp).Row).Value = sht.Name

于 2013-10-02T16:14:47.703 回答
2

这对我有用。

Option Explicit

Sub AddColumnFill()
    Dim sht As Worksheet
    Dim lRow As Long

    For Each sht In ActiveWorkbook.Worksheets
        With sht
            lRow = .Range("A" & .Rows.Count).End(xlUp).Row

            .Columns("A:A").Insert Shift:=xlToRight
            .Cells(1, 1) = "Class"
            .Range("A2:A" & lRow).Value = .Name
        End With
    Next sht
End Sub
于 2013-10-02T16:14:49.430 回答