2017-07-19 145 views
0

我能够制作一个程序,用于打开工作簿,将工作簿复制并粘贴到在本例中称为“全部在制”的工作簿中。但是,为了使这更方便,我希望它能够在任何工作簿中运行该工作簿,并将其复制并粘贴到特定的工作簿中。谢谢。如何从封闭的工作簿复制并粘贴到活动工作簿?

Sub AddMaskLevels() 

Dim book 

Set book = Workbooks.Open("MaskLevels.xlsx") 

Dim x As Workbook 

Dim y As Workbook 

Set x = Workbooks("MaskLevels.xlsx")'Where the information is copied from' 

Set y = Workbooks("ALL WIP.xlsm")'I want to make this into the active workbook' 

x.Sheets("Sheet1").Range("A1:A81").Copy 

y.Sheets("All WIP").Columns(9).End(xlDown).Offset(1, 0).PasteSpecial 'The Sheet and column will always stay the same' 

x.Save 

x.Close 

End Sub 
+0

我不完全清楚的过程。这个宏在哪里?在* MaskLevels.xlsx *?如果是这样,那么你为什么打开自己,你想动态地改变它到任何工作簿?如果没有,* MaskLevels.xlsx *是什么? – Parfait

+0

只是解释你想做什么,让更多的经验丰富的人帮助你,当然你需要证明你已经尝试和失败,显示你得到的错误 – Ibo

+0

@Parfait MaskLevels.xlsx是封闭的工作簿,我会喜欢从中获取我的信息。我想将这些信息粘贴到Workbook1.xls,Workbook2.xls,ALL WIP.xls等工作簿中。 –

回答

0

如果你想从MaskLevels.xlsx复制到宏运行任何工作簿,尝试:

Sub AddMaskLevels() 
    Dim y As Workbook 
    Dim x As Workbook 
    Set y = ThisWorkbook 
    Set x = Workbooks.Open("MaskLevels.xlsx") 

    x.Sheets("Sheet1").Range("A1:A81").Copy 
    y.Sheets("All WIP").Columns(9).End(xlDown).Offset(1, 0).PasteSpecial 
    'Close the workbook (no need to save it - hopefully nothing was changed) 
    x.Close False 
End Sub 

如果你想从MaskLevels.xlsx复制到任何工作簿,当您运行激活宏,请尝试:

Sub AddMaskLevels() 
    Dim y As Workbook 
    Dim x As Workbook 
    Set y = ActiveWorkbook 
    Set x = Workbooks.Open("MaskLevels.xlsx") 

    x.Sheets("Sheet1").Range("A1:A81").Copy 
    y.Sheets("All WIP").Columns(9).End(xlDown).Offset(1, 0).PasteSpecial 
    'Close the workbook (no need to save it - hopefully nothing was changed) 
    x.Close False 
End Sub 
+0

谢谢你的工作很好@ YowE3K –

相关问题