我正在尝试编写一个简单的函数(在模块FileIO中),它将获取工作簿的实例,然后关闭它。此函数从另一个模块Business调用。 以下是代码段。
Public Function CloseExcelFile(wkBook As Workbook)
If (wkBook Is Not Nothing) Then
wkBook.Save
wkBook.Close
End If
End Function
我使用命令FileIO.CloseExcelFile(catWorkBook)
调用此方法。变量catWorkBook
是我创建的工作簿的对象引用(之前的步骤)。
当我尝试调用自定义函数时,我收到错误
对象不支持此方法或属性
以下命令关闭工作簿,没有错误。
catWorkBook.Close
但是当我使用自定义函数时也不会发生这种情况。这里出了什么问题?
答案 0 :(得分:2)
正如braX指出的那样,你的Not
不在正确的位置。
此处您也不需要Function
。将其更改为Sub
。事实上,当你将它减少到这样的一行时,你几乎不需要Sub:
Public Sub CloseExcelFile(wkBook As Workbook)
If Not wkBook Is Nothing Then wkBook.Close(SaveChanges:=True)
End Sub
答案 1 :(得分:2)
您的Not
位于错误的位置。试试这样:
Public Function CloseExcelFile(wkBook As Workbook)
If Not wkBook Is Nothing Then
wkBook.Save
wkBook.Close
End If
End Function
答案 2 :(得分:0)
错误是由于我正在调用子例程的 INCORRECT 方式。我将子例程调用为: -
FileIO.CloseExcelFile(catWorkBook)
调用函数的 CORRECT 方式就是这样。
FileIO.CloseExcelFile catWorkBook