首页 文章

在excel工作簿中复制和粘贴多个工作表中的相同列的VBA代码问题

提问于
浏览
0

遇到代码问题 .

excel工作簿有4张 . 该工作簿定期更新 .

-Sheet1是我想要粘贴数据的地方 .

-Sheets2-4有我想要的数据 .

  • 范围“A2:B2”是Sheets2-4中数据所在的位置 . 需要将数据粘贴到Sheet1中的相同范围内 . 没有数据粘贴 .

以下代码导致A2:B2仅在Sheet2-4中选择,并且在Sheet1中选择并复制相同的范围 .

任何帮助,将不胜感激 .

Sub test()

    Worksheets.Select
    Range("A2:B2").Select
    Range(Selection, Selection.End(xlDown)).Select
    Selection.Copy
    Sheets("Sheet1").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
        :=False, Transpose:=False
End Sub

1 回答

  • 0

    您的代码是从sheet1复制/粘贴到sheet1 .

    • 代码的第一行选择所有工作表 .

    • 然后它选择第一张纸的当前范围,并将相同的选择应用于所有纸张 .

    • 在多个工作表上复制选择时,仅复制第一个工作表 .

    • 然后将sheet1粘贴到sheet1 .

    • 您无法在一个命令中从多个工作表复制 .

    • 如果可以,则无法将3张纸中的值粘贴到1张纸中的相同目的地范围内 .

    您的问题表明您只需要范围A2:B2,但是如果您只需要范围A2:B2,您的代码会选择代码下方的使用范围,这是不必要的 .

    以下是从单个工作表中复制/粘贴的一些代码:

    Sub CopyPaste()
    Worksheets("Sheet2").Range("A2:B2").Copy Destination:=Worksheets("Sheet1").Range("A2:B2")
    End Sub
    

    如果您希望复制活动表,请从上面的代码中删除工作表引用:

    Sub CopyPaste()
    Range("A2:B2").Copy Destination:=Worksheets("Sheet1").Range("A2:B2")
    End Sub
    

相关问题