2017-07-19 149 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 –

相關問題