簡體   English   中英

使用Excel-VBA宏從工作簿復制時出現運行時錯誤'1004'

[英]Run-time error '1004' When Using Excel-VBA Macro to Copy From Workbook

我正在嘗試實現一個簡單的Excel-VBA宏,以使用戶在文件資源管理器中瀏覽另一個工作簿,然后將該工作簿中的某些單元格復制到我的活動工作簿中。 這是我的短代碼:

Sub Load_AutoCADBOM()

   Dim wbk As Workbook

   Dim MyFile As String
   MyFile = Application.GetOpenFilename()

   If MyFile <> "False" Then
      Set wbk = Workbooks.Open(MyFile)
      With wbk.Sheets(1)
         Range("B2:C43").Copy
      End With

  ActiveWorkbook.Close


  With ThisWorkbook.Worksheets("Config")
     Range("A6:B47").PasteSpecial Paste:=xlPasteValues
  End With
   End If

End Sub

該宏用於從所選工作簿的(B2:C43)復制單元,並將它們復制到當前工作簿的“配置”表上的單元格(A6:B47)中。 當我運行宏時,出現“運行時錯誤'1004':Range類的PasteSpecial方法失敗。” 調試器突出顯示以下行:

     Range("A6:B47").PasteSpecial Paste:=xlPasteValues

我嘗試從csv,xls和xlsm文件復制所有文件,但結果相同。 可能是我要粘貼的工作表中的單元格格式化的方式嗎? 有趣的是,我已經在另一個工作簿中使用了此宏,並且使其工作正常。

如果有人知道我可以修復我的代碼並使它正常工作,將不勝感激。

謝謝

結束子

如果只想復制值,則可以跳過復制/粘貼並直接從源范圍中設置值:

Sub Load_AutoCADBOM()

   Dim wbk As Workbook
   Dim MyFile As String
   MyFile = Application.GetOpenFilename()

   If MyFile <> "False" Then
        Set wbk = Workbooks.Open(MyFile)
        With wbk.Sheets(1).Range("B2:C43")
            ThisWorkbook.Worksheets("Config").Range("A6").Resize(.rows.count, .columns.count).value = .Value
        End With
        wbk.Close
    End If

End Sub

暫無
暫無

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

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