为什么我在Excel VB中得到运行时错误429?

时间:2018-05-19 03:08:29

标签: excel vba runtime-error

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

我已尝试过从重新安装办公室到检查我的注册表而没有运气的一切。我检查了我的管理员priveldges,但没有解决它。我的代码是正确的

这是代码:

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文件(带宏的那个)

我会接受包括代码更改在内的所有建议

2 个答案:

答案 0 :(得分:1)

我会避免使用"。选择"复制和粘贴时的方法。我会开始采用这种方法:

改变并复制所需的范围。

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

答案 1 :(得分:1)

Sub GetSheetInfo()


Dim wbXL As Excel.Workbook

    Set wbXL = CreateObject("C:\Users\User\Desktop\Book1.xlsx")


    Range("A9:H800").Select

您需要将您拥有的文件路径准确地复制并粘贴到Windows资源管理器中,并查看它是否打开。我建议仔细检查你的文件扩展名并确保你不需要使用

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

当我尝试使用不存在的文件位置时,我收到您的错误,如果文件确实存在,它就可以正常工作。