当前位置: 首页 > 知识库问答 >
问题:

使用Excel-VBA宏从工作簿复制时出现运行时错误“1004”

杨彦君
2023-03-14

我试图实现一个简单的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

共有1个答案

陶乐生
2023-03-14

如果只想复制值,则可以跳过复制/粘贴,直接从源范围设置值:

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
 类似资料:
  • 一旦进入,它从新打开的工作簿中调用另一个子例程,子例程运行良好(需要2-3分钟),但随后代码自动退出循环(我的意思是它不打开循环中的下一个文件)。是因为被调用宏的处理时间吗?我可以用一些关于这个问题的见解,这将是非常有帮助的。提前致谢:) 末端接头

  • 我似乎有一个错误,我正在努力找出原因。我已经尝试了帮助部分,也尝试在线研究它,但没有得出任何结果。我希望有人能够帮助我解决这个问题。 问题 我在电子表格上为不同的工作表创建了多个表单。我做了表格,可以用来隐藏/显示用户的判断选择列。我有两种形式可以很好的工作,但是第三种。 我得到 运行时错误438“对象不支持此属性或方法” 这是什么意思?代码与其他表单完全相同。它们之间唯一的区别是床单的名称不同。

  • 我一直在为我的公司开发一个Excel宏,该宏打开几个工作簿,分析它们的特定信息行,存储该行,然后在完成每个工作簿后,在两个页面中的一个页面上设置单个工作簿中单元格的水平选择值。我遇到的问题是,在尝试选择第二个页面时,我需要将数据放在上面,我得到一个运行时错误1004。 我可以做什么来修复这个错误?

  • 我在上面有一个问题:我使用了提供的答案,但仍然击中了一个对象错误。你能看到我错过了什么吗?我在“cash_sheet.range(”C8“).pastespecial xlpastevalues”处找到了错误

  • 所以在问这个之前,我搜索并发现了一些与我在这里想要做的相似的事情。 基本上我有工作簿AlphaMaster。这个工作簿是一个模板,我想用它来创建每周的新工作簿。 在本工作簿中,有名为“周一至周六”的工作表,以及带有相应日期的周一、周二等其他工作表。 我创建了一个在打开工作簿时加载的表单。我想要的是当我单击表单运行时,它将: > 将代码保存模板作为新工作簿运行 根据userform1的输入重命名工作