【问题标题】:Getting Runtime Error 1004 using Copy Range method使用复制范围方法获取运行时错误 1004
【发布时间】:2020-02-19 08:28:24
【问题描述】:

说明: 我想要做的是允许用户通过浏览选择 excel 文件,然后将数据从 Sheet3 复制到所选文件中并粘贴到当前工作簿 Sheet2(名称为原始数据(步骤 1))。

我的问题是:

运行时错误 1004 应用程序定义或对象定义错误

在这条线上ActiveSheet.Range("A2:3063").Copy

我的完整代码:

Private Sub OpenWorkBook_Click()

Dim myFile As Variant
Dim OpenBook As Workbook
Application.ScreenUpdating = False

myFile = Application.GetOpenFilename(Title:="Browse your file", FileFilter:="Excel Files(*.xls*),*xls*")

If myFile <> False Then
    Set OpenBook = Application.Workbooks.Open(myFile)
    OpenBook.Sheets(3).Activate
    ActiveSheet.Range("A2:3063").Copy
    ThisWorkbook.Worksheets("Raw data(STEP 1)").Range("A3").PasteSpecial xlPasteValues
    OpenBook.Close True
End If

Application.ScreenUpdating = True

End Sub

【问题讨论】:

  • 您的实际范围参考不完整。但是,请查看this 帖子,了解如何避免.Activate。此外,如果您只对值感兴趣,则无需复制和粘贴它们(通过剪贴板)。您还应该设置对初始工作簿的引用,以便保存。

标签: excel vba copy range getopenfilename


【解决方案1】:

您的范围地址无效。可能你的意思是ActiveSheet.Range("A2:A3063")

您应该阅读https://stackoverflow.com/a/10717999/7599798 以了解如何在不使用Activate(或Select)的情况下处理表格和范围

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多