我有一个应该处理 word 和 excel 文件的子程序。为了使其更通用,我想将一些元素作为参数传递,而不是多次编写具有细微差别的相同内容。
该过程接受文件的扩展名,效果很好。但是,我还需要使用 appWord.Documents.Open 或 appExcel.Workbooks.Open 来打开文件。如何存储它并将其作为过程的参数调用?
ResaveFiles "appExcel.Workbooks", "docx", 12, 0
ResaveFiles "appExcel.Workbooks", "doc", 0, 12
ResaveFiles "appWord.Documents", "xlsx", 56, 51
ResaveFiles "appWord.Documents", "xls", 51, 56
Sub ResaveFiles(appType, srcExtName, srcExtNum, tmpExtNum)
If lcase(fso.GetExtensionName(objFileOrig)) = srcExtName then
<<StartWord>>
Set objOpenFile = (appType.Open(objFileOrig.path))
...
所以,我最终的目标是拥有一个而不是四个过程,因为它们之间的唯一区别是文件格式和正在调用的应用程序。
我对文件格式没有任何问题,但是,我无法将参数“appWord.Documents”传递给 Set objOpenFile = (appType.Open(objFileOrig.path)) 语句。上面显示的版本似乎不起作用,因为参数显示为字符串。有没有办法优化这个?