作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我想调用一个返回工作簿或对该工作簿的引用的函数。但是,我无法使用从函数返回的工作簿设置值“wb”。
Public Sub TestScript()
Dim wb As Workbook
wb = GetWorkBook()
End Sub
Function GetWorkBook() As Workbook
Dim db2 As Workbook
Dim xlApp As Excel.Application
Set xlApp = GetObject(, "Excel.Application")
Dim xlWB As Excel.Workbook
For Each xlWB In xlApp.Workbooks
If xlWB.Name = "Test.XLSX" Then
Set db2 = xlWB
End If
Next xlWB
Set xlApp = Nothing
Set xlWB = Nothing
GetWorkBook = db2
End Function
给予:
Runtime Error 91: Object Variable or With Block Variable not set
最佳答案
您忘记使用 set
语句两次:
Public Sub TestScript()
Dim wb As Workbook
Set wb = GetWorkBook()
End Sub
Function GetWorkBook() As Workbook
Dim db2 As Workbook
Dim xlApp As Excel.Application
Set xlApp = GetObject(, "Excel.Application")
Dim xlWB As Excel.Workbook
For Each xlWB In xlApp.Workbooks
If xlWB.Name = "Test.XLSX" Then
Set db2 = xlWB
End If
Next xlWB
Set xlApp = Nothing
Set xlWB = Nothing
Set GetWorkBook = db2
End Function
每当您将一个对象分配给一个变量(从而引用它)时,您必须使用 set
语句(https://stackoverflow.com/a/349636/1153513)。
例子:
Set rngYourRangeVariable = Thisworkbook.Worksheets("Sheet1").Range("A1:C4")
设置 shtSomeSheet = Thisworkbook.Worksheet("Sheet1")
设置 conSomeADOconnection = New ADODB.Connection
关于excel - VBA - 返回对工作簿的引用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37533185/
我是一名优秀的程序员,十分优秀!