需要VBScript将BAS文件导入到具有相对目录或备用目录的Excel中

时间:2019-08-30 16:35:33

标签: excel vbscript

我有一个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"

1 个答案:

答案 0 :(得分:0)

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"

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

相关问题