作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我在下面有一些代码,它就像一个魅力,但我对一些事情很好奇。
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/
我在下面有一些代码,它就像一个魅力,但我对一些事情很好奇。 为什么我不能制作 Set xWorkb = new Workbook陈述?相反,我使用 Dim xWorkb as new Workbook
我是一名优秀的程序员,十分优秀!