在VBA中将多个范围复制到另一个工作簿,Active工作簿将无法工作,因为我使用的是perosnal.xlsb宏

时间:2016-12-22 09:27:20

标签: excel-vba vba excel

我看过多个论坛试图找到解决方案。

我们每周都会收到工作报告&我想创建一个宏,从两个不同的选项卡中获取这些数据。将其上传到sharepoint站点上的主文档。

我遇到的问题是我使用的是PERSONAL.XLSB宏,我不能使用“ThisWorkbook”,因为它引用了Personal.XLSB工作簿。我也不能使用“Activeworkbook”,因为我需要回到原始工作簿来从第二个选项卡复制第二个数据范围,数据被粘贴的工作簿变成“Activeworkbook”。

我使用的守则如下。

Sub DataUpload()

    Dim y As Workbook
    Dim x As Workbook

    Set x = ActiveWorkbook
    Set y = Workbooks.Open("URL")

    x.Sheets("ORSA026").Range("A2:B250").Copy
    y.Sheets("ORSA994").Range("A1:B200").EntireColumn.Delete
    y.Sheets("ORSA026").Range("A1:B200").EntireColumn.Delete
    y.Sheets("ORSA026").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone
    x.Sheets("ORSA994").Range("A2:B250").Copy
    y.Sheets("ORSA994").Range("A1").PasteSpecial Paste:=xlPasteValues, Operation:=xlNone

    x.Save
    x.Close
End Sub

非常感谢帮助!

1 个答案:

答案 0 :(得分:0)

Sub DataUpload()

Dim y As Workbook

Dim x As Workbook

设置x = ActiveWorkbook

设置y = Workbooks.Open(" URL")

y.Sheets(" ORSA026")。范​​围(" A1:B249")。值= x.Sheets(" ORSA026")。范​​围(& #34; A2:B250")值

y.Sheets(" ORSA994")。范​​围(" A1:B249")。值= x.Sheets(" ORSA994")。范​​围(& #34; A2:B250")值

y.Save

y.Close

End Sub