VBA – 自定义functionclosures工作簿 – 不工作
我正在尝试编写一个简单的函数(在一个模块FileIO中),该函数将获取一个工作簿的实例,并closures它。 这个函数是从另一个模块Business调用的。 以下是代码片段。
Public Function CloseExcelFile(wkBook As Workbook) If (wkBook Is Not Nothing) Then wkBook.Save wkBook.Close End If End Function
我使用命令FileIO.CloseExcelFile(catWorkBook)
来调用这个方法。 variablescatWorkBook
是我创build的工作簿的对象引用(在之前的一个步骤中)。
当我尝试太调用自定义函数时,我得到错误
对象不支持此方法或属性
下面的命令closures工作簿,没有错误。
catWorkBook.Close
但是,当我使用自定义函数时也不会发生这种情况。 这里怎么了?
你只是有你的Not
错误的地方。 试试像这样:
Public Function CloseExcelFile(wkBook As Workbook) If Not wkBook Is Nothing Then wkBook.Save wkBook.Close End If End Function
正如braX指出的那样,你的Not
不在正确的位置。
这里也不需要Function
。 将其更改为一个Sub
。 事实上,当你把它缩小到一行时,你几乎不需要Sub:
Public Sub CloseExcelFile(wkBook As Workbook) If Not wkBook Is Nothing Then wkBook.Close(SaveChanges:=True) End Sub
错误是由于我调用子例程的方式不正确。 我调用子例程为: –
FileIO.CloseExcelFile(catWorkBook)
调用函数的正确方法本来就是这样的。
FileIO.CloseExcelFile catWorkBook