运行 来自 Windows 服务应用程序的 Excel 宏时出错
Error when Running an Excel Macro from a Windows Service Application
我创建了一个 Windows 服务应用程序,它可以做很多事情,但其中一部分会产生错误。我的服务 运行 是一个打开 Excel 文档的 PowerShell 脚本(我知道微软不支持这个,但打开 Excel 文档实际上并没有给我带来什么问题)。当我尝试在其上 运行 宏时出现以下错误,我不知道如何修复它。
Exception calling "Run" with "1" argument(s): "'C:\WINDOWS\system32\PERSONAL.XLSB' could not be found.
Check the spelling of the file name, and verify that the file location is correct.
If you are trying to open the file from your list of most recently used files,
make sure that the file has not been renamed, moved, or deleted."
At line:54 char:1
+ $excel.Run("PERSONAL.XLSB!MacroForSoftwareFeatureLicensesXLS")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我已经应用了其他解决方案,例如将 'Desktop' 文件夹添加到 C:\Windows\System32\config\systemprofile 和 C:\Windows\SysWOW64\config\systemprofile。这有助于我打开 excel 文档。
我试过将 PERSONAL.XLSB 文件放在 C:\WINDOWS\system32 文件夹中,但这没有任何作用。同样,我也尝试将 PERSONAL.XLSB 文件放在 C:\WINDOWS\sysWOW64 中,但这完全停止了我的服务。
我的 PowerShell 脚本如下:
$myLocalXLS = "C:\Users\aUser\Desktop\aFolder\myLocalXLS.xls"
$excel = New-Object -ComObject excel.application
$excel.DisplayAlerts = $FALSE
$myXLSWorkbook = $excel.Workbooks.Open($mylocalXLS)
$excel.Run("PERSONAL.XLSB!MacroForMyLocalXLS")
$myXLSWorkbook.Save()
$excel.DisplayAlerts = $TRUE
$excel.Quit()
我认为您实际上必须手动打开 PERSONAL.XLSB
,例如这样的事情对我有用:
$myLocalXLS = "C:\Users\aUser\Desktop\aFolder\myLocalXLS.xls"
$myPersonalXLSB = "C:\Users\aUser\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB"
$excel = New-Object -ComObject excel.application
$excel.DisplayAlerts = $FALSE
$myXLSWorkbook = $excel.Workbooks.Open($mylocalXLS)
$myPersonalWorkbook = $excel.Workbooks.Open($myPersonalXLSB)
$excel.Run("PERSONAL.XLSB!MacroForMyLocalXLS")
我创建了一个 Windows 服务应用程序,它可以做很多事情,但其中一部分会产生错误。我的服务 运行 是一个打开 Excel 文档的 PowerShell 脚本(我知道微软不支持这个,但打开 Excel 文档实际上并没有给我带来什么问题)。当我尝试在其上 运行 宏时出现以下错误,我不知道如何修复它。
Exception calling "Run" with "1" argument(s): "'C:\WINDOWS\system32\PERSONAL.XLSB' could not be found.
Check the spelling of the file name, and verify that the file location is correct.
If you are trying to open the file from your list of most recently used files,
make sure that the file has not been renamed, moved, or deleted."
At line:54 char:1
+ $excel.Run("PERSONAL.XLSB!MacroForSoftwareFeatureLicensesXLS")
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
我已经应用了其他解决方案,例如将 'Desktop' 文件夹添加到 C:\Windows\System32\config\systemprofile 和 C:\Windows\SysWOW64\config\systemprofile。这有助于我打开 excel 文档。
我试过将 PERSONAL.XLSB 文件放在 C:\WINDOWS\system32 文件夹中,但这没有任何作用。同样,我也尝试将 PERSONAL.XLSB 文件放在 C:\WINDOWS\sysWOW64 中,但这完全停止了我的服务。
我的 PowerShell 脚本如下:
$myLocalXLS = "C:\Users\aUser\Desktop\aFolder\myLocalXLS.xls"
$excel = New-Object -ComObject excel.application
$excel.DisplayAlerts = $FALSE
$myXLSWorkbook = $excel.Workbooks.Open($mylocalXLS)
$excel.Run("PERSONAL.XLSB!MacroForMyLocalXLS")
$myXLSWorkbook.Save()
$excel.DisplayAlerts = $TRUE
$excel.Quit()
我认为您实际上必须手动打开 PERSONAL.XLSB
,例如这样的事情对我有用:
$myLocalXLS = "C:\Users\aUser\Desktop\aFolder\myLocalXLS.xls"
$myPersonalXLSB = "C:\Users\aUser\AppData\Roaming\Microsoft\Excel\XLSTART\PERSONAL.XLSB"
$excel = New-Object -ComObject excel.application
$excel.DisplayAlerts = $FALSE
$myXLSWorkbook = $excel.Workbooks.Open($mylocalXLS)
$myPersonalWorkbook = $excel.Workbooks.Open($myPersonalXLSB)
$excel.Run("PERSONAL.XLSB!MacroForMyLocalXLS")