Excel 实现用于在宏中重复代码的子例程
我想知道有没有办法缩短我目前的代码。我在我的许多宏中运行一个进程,并且正在考虑子程序。我试过几种方法,但都没能奏效 我多次执行一次搜索:Excel 实现用于在宏中重复代码的子例程,excel,vba,Excel,Vba,我想知道有没有办法缩短我目前的代码。我在我的许多宏中运行一个进程,并且正在考虑子程序。我试过几种方法,但都没能奏效 我多次执行一次搜索: Sub AddFileToDC() '... I am getting oDCSearchConditions from the search, then ' Execute the search Dim oDCObjectSearchResults As MFilesAPI.ObjectSearchResults Set
Sub AddFileToDC()
'... I am getting oDCSearchConditions from the search, then
' Execute the search
Dim oDCObjectSearchResults As MFilesAPI.ObjectSearchResults
Set oDCObjectSearchResults = oVault.ObjectSearchOperations.SearchForObjectsByConditions(oDCSearchConditions, MFSearchFlagNone, False)
' Get a reference to the existing document collection
Set oDocumentCollectionOVAP = oVault.ObjectOperations.GetObjectVersionAndProperties(oDCObjectSearchResults.Item(1).ObjVer)
Set oOldDocumentOVAP = oVault.ObjectOperations.GetObjectVersionAndProperties(oObjectSearchResults.Item(1).ObjVer)
End Sub
在所有其他宏中,我正在执行另一个搜索,从中可以获得oObjectSearchResults
是否可以执行以下操作,而不是将上述代码复制到所有宏中:
Sub Code1()
'... I am getting oSearchConditions from the search, then
' Execute the search
Dim oObjectSearchResults As MFilesAPI.ObjectSearchResults
Set oObjectSearchResults = oVault.ObjectSearchOperations.SearchForObjectsByConditions(oSearchConditions, MFSearchFlagNone, False)
AddFileToDC
End Sub
现在,在运行
Code1
时,我收到一条错误消息,说variableoDCObjectSearchResults
未定义为另一个子AddFileToDC
。在设置变量后从调用的宏中删除设置/标注时,将类似的命名变量设置为全局变量:
Public oObjectSearchResults As MFilesAPI.ObjectSearchResults
Sub Code1()
' Execute the search
Set oObjectSearchResults = oVault.ObjectSearchOperations.SearchForObjectsByConditions(oSearchConditions, MFSearchFlagNone, False)
AddFileToDC
End Sub
Sub AddFileToDC()
' Get a reference to the existing document collection
Set oDocumentCollectionOVAP = oVault.ObjectOperations.GetObjectVersionAndProperties(oDCObjectSearchResults.Item(1).ObjVer)
Set oOldDocumentOVAP = oVault.ObjectOperations.GetObjectVersionAndProperties(oObjectSearchResults.Item(1).ObjVer)
End Sub
在两组代码中不能有相同的变量名,因为内存已分配给该特定变量名;调用宏
AddFileToDC
时,需要删除Code1
中正在标注/设置的变量的标注/设置。您很可能需要全局地标注变量,以便两个子例程都可以使用它。