簡體   English   中英

使用VBA宏從另一個Excel文件復制數據

[英]Copy data from another Excel file with VBA macro

我想打開一個工作簿,並從打開的工作簿表復制到我的工作簿表,如下所示:

Private Sub Workbook_Open()
    Dim openedFile As String
    Dim sourcebook As Workbook
    openedFile = Application.GetOpenFilename(fileFilter:="Excel Macro-Enabled Workbook (*.xlsm), *.xlsm") 'Source book opening

    Set sourcebook = Workbooks.Open(openedFile)

    Application.CutCopyMode = True
    sourcebook.Worksheets("source_sheet").Range("A1:L100").Copy
    ThisWorkbook.Worksheets("dest_sgheet").Range("A1").PasteSpecial Paste:=xlPasteValues
    Application.CutCopyMode = False
    Call sourcebook.Close(False)
End Sub

我運行以下代碼后收到以下錯誤消息:

運行時錯誤'1004”:Range類的PasteSpecial方法失敗

這條線是黑色的:

ThisWorkbook.Worksheets("dest_sheet").Range("A1").PasteSpecial Paste:=xlPasteValues

嘗試先激活工作簿(“此工作簿”),然后再激活要粘貼數據的工作表。 由於范圍不可見或不存在,因此容易發生錯誤。

您的代碼應該可以工作。 更改此行:

ThisWorkbook.Worksheets("dest_sgheet").Range("A1").PasteSpecial Paste:=xlPasteValues

與此:

 ThisWorkbook.Worksheets("dest_sheet").Range("A1").PasteSpecial Paste:=xlPasteValues

編輯基於2016年5月25日的OP注釋,我在糾正了表拼寫中的輕微錯字錯誤后,根據OP代碼重新運行了該程序。 程序成功運行,沒有任何問題。 我沒有收到運行時錯誤1004。屏幕快照顯示數據正在正確復制。

屏幕截圖顯示了輸入和輸出

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM