我得到了一个包含 30 张纸的 excel 文件,它们都包含相同的第一行。我正在寻找一种代码/方式来复制工作表 1 上的第一行并将其粘贴到所有现有工作表上。
行定期更改,通过这种方式我只需调整一次。
您可以使用它.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
您可以尝试以下操作:单击并按住键盘上的“Shift”,然后用鼠标单击最后一张纸。您会注意到所有工作表都将被分组(注意 excel 文件顶部的关键字“组”)。现在,您在 1 张纸上所做的一切都将在组模式下应用到所有。
假设您设置了标准的 3 张纸(Sheet1、Sheet2、Sheet3),可以做一个简单的方法
在工作表 1 中进行所有更改,然后单击工作表 2,Shift + 单击工作表 3。
在单元格 A1 中,键入 =sheet1!a1
将它复制到您需要的距离。
选择工作表 1(以删除分组)
现在工作表 2 和 3 将具有相同的顶行。这适用于 excel 支持的尽可能多的工作表。所以点击 sheet2,然后 shift 点击 sheet 50 将填写 Sheet2 - sheet 50 范围内的所有工作表
考虑类似的事情:
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