gpt4 book ai didi

vba - 设置 xWorkb = 新工作簿不工作,ActiveX 错误

转载 作者:行者123 更新时间:2023-12-04 22:04:55 24 4
gpt4 key购买 nike

我在下面有一些代码,它就像一个魅力,但我对一些事情很好奇。

  • 为什么我不能制作 Set xWorkb = new Workbook陈述?相反,我使用 Dim xWorkb as new Workbook ,这有效。但我已经了解到(希望是正确的)使用 new Dim 中的声明是不好的做法,你应该单独创建对象。那么为什么它不起作用呢?我收到 ActiveX 组件无法创建对象错误,但是 xWorkb由于 Dim 中的新语句,稍后仍将其创建为对象。部分?让我很困惑。
  • 为什么我不能使用 excel.application.workbooks定义变量时xApp ?是因为我必须指定一个工作簿并且不能像那样把工作簿留空吗?尝试更改 excel.application 时出现类型不匹配错误至excel.application.workbooks .

  • Sub tester()

    Dim xWorkb As New Workbook
    Dim xApp As Excel.Application: Set xApp = New Excel.Application
    Dim xFiles_target() As Variant
    Dim file_path As String

    xFiles_target = Array("Bella.xls", "Fizz.xls", "Milo.xls", "Jake.xls")
    file_path = Dir("C:\Users\hans\Desktop\")

    Do While Len(file_path) > 0
    Debug.Print file_path
    If UBound(Filter(xFiles_target, file_path)) >= 0 Then
    Debug.Print "found " & file_path
    Set xWorkb = xApp.Workbooks.Open("C:\Users\hans\Desktop\" & file_path)
    xApp.ActiveSheet.Cells(2, 2) = "tester"
    xWorkb.Save
    xWorkb.Close
    End If
    file_path = Dir

    Loop

    End Sub

    最佳答案

    您不能使用 New 创建新工作簿因为工作簿与 Application并且必须使用 Workbooks.Add 创建或 Workbooks.Open .
    Dim xWorkb as new Workbook不起作用 - 它似乎起作用,因为您没有访问 xWorkb在声明它和用 Workbooks.Open 分配它之间.如果你这样做了,你会得到同样的 ActiveX 组件不能创建对象错误。
    错误是因为 Excel.Workbook没有任何公共(public)构造函数。

    您不能将变量定义为 excel.application.workbooks因为那不是一种类型。它是一个名为 Workbooks 的属性, 类型为 Excel.Workbooks ,属于名为 Application 的对象类型 Excel.Application .
    您可以将变量声明为 Excel.Workbooks ,但您可能不想这样做,因为您需要创建一个 Excel.Application无论如何都要使用它。

    关于vba - 设置 xWorkb = 新工作簿不工作,ActiveX 错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25414888/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com