我有一张30张的excel文件,其中包含相同的第一行。 我正在寻找一种代码/方式来复制第1张纸上的第一行并将其粘贴在所有现有纸张上。
行经常变化,通过这种方式我只需要调整一次。
答案 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)
可以做一个简单的方法
完成工作表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张纸上执行的所有操作将在组模式下应用于所有内容。