首页 文章

Excel 2007宏填充到工作簿中所有工作表的第一个工作表的末尾

提问于
浏览
0

下面的代码创建一个新列(A),给它 Headers “Class”,然后用工作表名称填充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

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

  • 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
    

相关问题