VBScript 从桌面运行文件(任何用户)

Geo*_*OST 2 vbscript path

我创建了一个 VBScript 来在不打开文件的情况下从 excel 运行宏。

Set objExcel = CreateObject("Excel.Application")  
objExcel.Application.Run "'C:\Users\MyUser\Desktop\RM.xlsm'!Module4.Email"  
objExcel.DisplayAlerts = False  
objExcel.Application.Quit  
Set objExcel = Nothing
Run Code Online (Sandbox Code Playgroud)

我想在不同的计算机上使用这个 VBScript 和 XLSM 文件,那么我怎样才能改变这个脚本而不用每次都编辑路径呢?
(可能是从当前文件夹运行的代码或从任何用户桌面运行的代码)

Spa*_*gen 5

如果该文件将始终在每个用户的桌面上,那么您可以使用环境变量来确定位置。

Set wshShell = CreateObject( "WScript.Shell" )
userName = wshShell.ExpandEnvironmentStrings( "%UserName%" )

path = "'C:\Users\" + userName + "\Desktop\RM.xlsm'!Module4.Email"
Set objExcel = CreateObject("Excel.Application")  
objExcel.Application.Run path
objExcel.DisplayAlerts = False  
objExcel.Application.Quit  
Set objExcel = Nothing
Run Code Online (Sandbox Code Playgroud)

(未经测试的代码)

如果文件不在每个用户的桌面上,那么您需要将它存储在网络上的一个公共位置,并让每个用户从那里访问它,例如在 .

\\YourFileSever\SharedFiles\RM.xlsm
Run Code Online (Sandbox Code Playgroud)

实际上,后者更可取,因为这意味着工作簿只在一个地方,而在发布新版本时,您只需要更新一个副本