需要 VBScript 将 BAS 文件导入具有相对目录或替代方案的 Excel



我有一个VBA模块和一个VBScript,可以将这个模块导入到特定的Excel工作簿中。我面临的问题是,当使用不同的机器时,模块的路径会改变。有没有办法将 BAS 文件与脚本文件打包?或者将BAS放在实际的VBScript文件中?

理想情况下,最终产品将是单个文件,可以将 Vbscript 和 BAS 文件一起发送(可能是压缩的(,但我更喜欢一个文件的可交付成果。不幸的是,将 VBA 模块转换为 VBS 并不是一个真正的选择,因为我特别需要一些 VBA 功能。

当前功能但不是理想的代码:

'Target Excel file to import BAS file to
Filepath = "C:targetExcelFile.xlsx"
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(filepath)
objExcel.Visible = True
'Imports BAS module, but using a filepath
objExcel.VBE.ActiveVBProject.VBComponents.Import pathToBASfile
objExcel.Run "MySub"

VBS 文件是否总是放在 xlxs 附近?如果是这样,您可以执行以下操作:

'Target Excel file to import BAS file to
Set Fso = WScript.CreateObject("Scripting.FileSystemObject")
ParentFolder  = FSO.GetParentFolderName(WScript.ScriptFullName)
sParentFolder = ParentFolder & ""
Filepath = sParentFolder & "targetExcelFile.xlsx"
Set objExcel = CreateObject("Excel.Application")
Set objWorkbook = objExcel.Workbooks.Open(filepath)
objExcel.Visible = True
'Imports BAS module, but using a filepath
objExcel.VBE.ActiveVBProject.VBComponents.Import pathToBASfile
objExcel.Run "MySub"

这将获取执行脚本的当前文件夹,如果文件位于其附近,它将始终运行。

最新更新