我基本上只需要知道如何从一张从A1-O1到第二张,第三张,第四张,第五张等的表格中复制一个标题...它们都有相同的标题。第一张纸位于右侧,纸张2位于左侧并向左侧增加。我试过这个,我在一些网站上找到了,但它说需要对象。错误是运行时错误424
mainworkBook.Sheets(“Sheet1”).Rows(1).EntireRow.Copy
mainworkBook.Sheets(“Sheet2”).Range(“A1”).Select
mainworkBook.Sheets(“Sheet2”).Paste
答案 0 :(得分:0)
您可以执行以下操作,而不是使用选择:
For Each Sheet In ThisWorkbook.Sheets
ThisWorkbook.Sheets("ALL_DATA").Rows(1).Copy Destination:=Worksheets(Sheet.Name).Range("A1")
Next
这将遍历工作簿中的每个工作表,获取您提供的范围(Sheet1中的第1行),并通过引用要循环的每个工作表的Name属性将其粘贴到每个工作表。
错误可能来自工作簿变量,因为这是唯一不清楚的事情。
我还建议您查看这篇文章:How to avoid using Select in Excel VBA macros因为它在避免选择/激活时非常有帮助,这在通过录制宏来学习VBA的人中很常见。
让我知道它是否适合你。
答案 1 :(得分:0)
这是一个使用循环的好地方。对于工作簿中的每个工作表,粘贴相同的标题。
<Inc>
<Professor>
<ProfessorLevel>
<Maximum>100000</Maximum>
<Minimum>1000</Minimum>
</ProfessorLevel>
</Professor>
</Inc>
编辑:**部分可以这样:
Sub forEachWs()
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
Call pasteContents(ws)
Next
End Sub
Sub pasteContents(ws as Worksheet)
** Your code goes here
End Sub
或者也可能是......
Sub pasteContents(ws as Worksheet)
ActiveWorkbook.Sheets(“Sheet1”).Rows(1).EntireRow.Copy
ActiveWorkbook.Sheets(ws).Range(“A1”).Select
ActiveWorkbook.Sheets(ws).Paste
End Sub
答案 2 :(得分:0)
一个小循环代码。我知道它是否有效。
Sub COPYPASTeHEADER()
Dim K As Integer
For K = 2 To ActiveWorkbook.Sheets.Count
Sheets("All_Data").Range("A1:O1").COPY Sheets(K).Range("A1")
Next
End Sub