将工作表名称添加到前六行

时间:2016-02-02 14:33:45

标签: vba loops insert worksheet

我在工作簿中有大量工作表。

我想在每个工作表的顶部插入一个新行(A:A),并将每个工作表的名称插入到所有工作表的单元格(B1:G1)中。

我有第一部分,但有点卡在第二部分(即添加工作表名称)。我将不胜感激。

更正的代码:

Sub NameSheets()
Dim sheetnm() As String
ReDim sheetnm(1 To Sheets.Count)
Dim i As Long
Dim ws As Worksheet

    For i = 1 To Sheets.Count
        Sheets(i).Rows("1:1").Insert Shift:=xlDown
        sheetnm(i) = Sheets(i).Name
        Sheets(i).Range("B1:G1") = Sheets(i).Name
    Next i

End Sub

3 个答案:

答案 0 :(得分:0)

范围(“B1:G1”)= ActiveSheet.name。这会将当前工作表名称添加到所有6列

答案 1 :(得分:0)

我修改了你的代码。试试这个:

Dim sheet As Worksheet
For Each sheet In Worksheets
    sheet.Rows("1:1").Insert Shift:=xlDown
    sheet.Range("B1:G1").Value = sheet.Name
Next sheet

答案 2 :(得分:0)

这将循环两次。第一个添加第一行并创建工作表名称的数组。第二行从B1开始在第一行输入该列表:

Sub NameSheets()
Dim sheetnm() As String
ReDim sheetnm(1 To Sheets.Count)
Dim i As Long

For i = 1 To Sheets.Count
    Sheets(i).Rows("1:1").Insert Shift:=xlDown
    sheetnm(i) = Sheets(i).Name
Next i

Dim ws As Worksheet
For Each ws In ActiveWorkbook.Sheets
    ws.Range("B1").Resize(, UBound(sheetnm)).Value = sheetnm
Next ws

End Sub