将表1中的行A1复制到行A1表2中

时间:2017-07-06 15:07:52

标签: excel vba excel-vba

我基本上只需要知道如何从一张从A1-O1到第二张,第三张,第四张,第五张等的表格中复制一个标题...它们都有相同的标题。第一张纸位于右侧,纸张2位于左侧并向左侧增加。我试过这个,我在一些网站上找到了,但它说需要对象。错误是运行时错误424

mainworkBook.Sheets(“Sheet1”).Rows(1).EntireRow.Copy
mainworkBook.Sheets(“Sheet2”).Range(“A1”).Select
mainworkBook.Sheets(“Sheet2”).Paste

3 个答案:

答案 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