首页 > 解决方案 > 为什么我在 Excel VB 中收到运行时错误 429?

问题描述

我收到运行时错误。Activex 组件无法创建对象。

我已经尝试了从重新安装办公室到检查我的注册表的所有方法,但都没有运气。我检查了我的管理员权限,但没有解决。我的代码是正确的

这是代码:

Sub GetSheetInfo()


Dim wbXL As Excel.Workbook

    Set wbXL = CreateObject("D:\project\Ruby\Live info Ruby.xls")


    Range("A9:H800").Select
    Selection.EntireRow.Delete

    Windows("Live info Ruby.xls").Activate
    Sheets("Ruby - 2020").Select
    Range("A155:g950").Select
    Selection.Copy
    Windows("Project Duration.xlsm").Activate
    Sheets("Frequency").Select
    Range("A9").Select
    Selection.PasteSpecial Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
       , SkipBlanks:=False, Transpose:=False
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
       :=False, Transpose:=False

    wbXL.Close

End Sub

基本上所有这一切都是假设做的就是从另一个excel文件表中复制并将其粘贴到另一个excel文件中(带有宏的那个)

我会接受任何和所有建议,包括代码更改

标签: excelvbaruntime-error

解决方案


我会避免在复制和粘贴时使用“.Select”方法。我将开始采用这种方法:

调暗并复制所需的范围。

Sub GetSheetInfo()

Dim wbXL As Excel.Workbook
Dim CWB As Workbook
    Set CWB = Thisworkbook
    Set wbXL = Application.Workbooks.Open("D:\project\Ruby\Live info Ruby.xls")

Range("A9:H800").ClearContents

Dim CopyRange As Range
    Set CopyRange = wbXL.Sheets("Ruby - 2020").Range("A155:G950")
    CopyRange.Copy
        CWB.Sheets("Frequency").Range("A9").PasteSpecial _
        Paste:=xlPasteAllUsingSourceTheme, Operation:=xlNone _
        , SkipBlanks:=False, Transpose:=False

'Added "False" to not save workbook when closing. You can remove this if needed
wbXL.Close False 

End Sub

您可以使用它来查看excel是否能够打开文件。如果它能够打开文件,它会告诉你它使用的路径。确保您选择使用的代码中的路径与此路径逐个字母匹配。

Option Explicit


Sub Test()

Dim FileOpen As FileDialog
Dim fullpath As String

With Application.FileDialog(msoFileDialogFilePicker)
    .AllowMultiSelect = False
    .Title = "Select a File"
    .Filters.Clear
    .Show
    fullpath = .SelectedItems(1)
End With

MsgBox fullpath

Workbooks.Open fullpath

End Sub

推荐阅读