PowerShell启动了Excel VBA宏,但未执行任何操作
我有一个VBA宏,在Excel中有工作数据。也许你们中的一些人不想看到那个宏,但相信我,它是有效的。它工作了好几个星期,如果我打开PowerShell将要编辑的文件并单击按钮,宏也可以工作,因此没有问题 首先,我的PowerShell脚本应该只执行宏并保存Excel。 我了解了如何运行宏/单击按钮以及如何保存文件。这是我的密码:PowerShell启动了Excel VBA宏,但未执行任何操作,excel,vba,powershell,Excel,Vba,Powershell,我有一个VBA宏,在Excel中有工作数据。也许你们中的一些人不想看到那个宏,但相信我,它是有效的。它工作了好几个星期,如果我打开PowerShell将要编辑的文件并单击按钮,宏也可以工作,因此没有问题 首先,我的PowerShell脚本应该只执行宏并保存Excel。 我了解了如何运行宏/单击按钮以及如何保存文件。这是我的密码: $ExcelPath=“PathToMyExcel” $excel=新对象-comobject excel.Application $workbook=$excel.W
$ExcelPath=“PathToMyExcel”
$excel=新对象-comobject excel.Application
$workbook=$excel.Workbooks.Open($ExcelPath)
$excel.Visible=$true
$app=$excel.Application
$app.Run(“Sheet.Macro”)
开始睡眠-秒2#->这样我就可以看到宏“应该”在做什么
$excel.Visible=$false
$workbook.Saved=$true
$workbook.SaveAs($ExcelPath)
$xl.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($xl)
[System.GC]::Collect()
我的第一个问题是它找不到宏,也无法运行宏,因此我从getgo激活了宏,后来发现我必须包含按钮/宏所在的工作表名称(sheet.Macro)
我尝试更改$app.Run(“”),包括所有内容、工作表、工作簿、整个Excel路径和其他内容,每个人都会返回一个错误,即它找不到宏,但“Sheet.Macro”不会返回任何错误,但正如我前面所说的,它不会执行任何操作
所以,现在我没有任何错误,它应该工作,但它没有。是因为它是VBA宏还是其他什么
$ExcelPath = "PathToMyExcel"
$excel = New-Object -comobject Excel.Application
$workbook = $excel.Workbooks.Open($ExcelPath)
$excel.Visible = $true
$app = $excel.Application
$app.Run("Sheet1.Macro")
Start-Sleep -Seconds 2 # -> Just so I can see what the Macro "Should" be doing
$excel.Visible = $false
$workbook.Saved = $true
$workbook.SaveAs($ExcelPath)
$excel.Quit()
[System.Runtime.Interopservices.Marshal]::ReleaseComObject($excel)
[System.GC]::Collect()
确保图纸名称正确
我假设它应该是
Sheet1
,宏应该是“Sheet1”下的public sub
。试试其他人提到的$app.run(“workbookName.macro”)。。。这个>>$xl.Visible
$excel.Visible
@Lee_Dailey只是我在这个例子中犯的一个拼写错误,但谢谢你指出它。@f6a4也不起作用。你在哪里定义了宏?是否添加在表1下?如果是,您可能需要执行$app.Run(“Sheet1.Macro”)
。另外,宏
是公共子宏?