将工作表1上的行复制到所有现有工作表

时间:2013-09-02 13:39:14

标签: excel vba excel-vba

我有一张30张的excel文件,其中包含相同的第一行。 我正在寻找一种代码/方式来复制第1张纸上的第一行并将其粘贴在所有现有纸张上。

行经常变化,通过这种方式我只需要调整一次。

4 个答案:

答案 0 :(得分:3)

您可以使用.FillAcrossSheets执行此操作:

Sub CopyToAllSheets()
    Dim ws As Worksheet
    Set ws = ThisWorkbook.Sheets("Sheet1")
    Sheets.FillAcrossSheets ws.Range("1:1")
End Sub

请注意,您可以使用可选的类型参数指定要复制的内容:

  • 复制内容并格式化= xlFillWithAll
  • 仅复制内容= xlFillWithContents
  • 仅复制格式= xlFillWithFormats

默认值为xlFillWithAll。如果您想使用其他选项之一,请执行以下操作:

' copy contents
Sheets.FillAcrossSheets ws.Range("1:1") xlFillWithContents

' copy formats
Sheets.FillAcrossSheets ws.Range("1:1") xlFillWithFormats

如果您不想复制到工作簿中的每个工作表,可以指定目标工作表列表,如下所示:

Sub CopyToSpecificSheets()
    Dim wb As Workbook
    Dim ws As Worksheet
    Dim targetSheets As Variant

    Set wb = ThisWorkbook
    Set ws = wb.Sheets("Sheet1")
    ' the sheet we are copying from must be included in the array
    targetSheets = Array(ws.Name, "Sheet2", "Sheet4")
    wb.Sheets(targetSheets).FillAcrossSheets ws.Range("1:1")
End Sub

答案 1 :(得分:0)

假设你有标准的3张设置(Sheet1,Sheet2,Sheet3),

可以做一个简单的方法

完成工作表1中的所有更改,然后单击工作表2,Shift +单击工作表3.

单元格A1中的

,键入= sheet1!a1

将其复制到您需要的范围内。

选择工作表1(删除分组)

现在,第2页和第3页将具有相同的顶行。这适用于excel支持的多个工作表。因此,单击sheet2,然后移动单击工作表50将填写Sheet2 - sheet 50

范围内的所有工作表

答案 2 :(得分:0)

考虑类似的事情:

Sub qwerty()
    Dim r As Range
    Set r = Sheets(1).Range("1:1")
    For n = 2 To Sheets.Count
        r.Copy Sheets(n).Range("A1")
    Next n
End Sub

答案 3 :(得分:0)

您可以尝试以下操作:单击并按住键盘上的“Shift”,然后用鼠标单击最后一页。您会注意到所有工作表都将被分组(注意excel文件顶部的关键字“Group”)。现在,您在1张纸上执行的所有操作将在组模式下应用于所有内容。