繁体   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