Excel 使用Powershell运行时,宏重命名工作表将不起作用
我有一个宏,可以格式化列并将工作表(1)重命名为Sales-工作表每个月都有不同的名称,例如Sales(一月)、Sales(二月)等 我可以手动运行宏,它工作正常,但当我尝试使用Powershell时Excel 使用Powershell运行时,宏重命名工作表将不起作用,excel,vba,powershell,Excel,Vba,Powershell,我有一个宏,可以格式化列并将工作表(1)重命名为Sales-工作表每个月都有不同的名称,例如Sales(一月)、Sales(二月)等 我可以手动运行宏,它工作正常,但当我尝试使用Powershell时 $File = Get-ChildItem 'C:\Users\username\Clean\Sales*.xlsx' $XLSB = 'C:\Users\username\Clean\PERSONAL.XLSB' function Sales { $excel = New
$File = Get-ChildItem 'C:\Users\username\Clean\Sales*.xlsx'
$XLSB = 'C:\Users\username\Clean\PERSONAL.XLSB'
function Sales
{
$excel = New-Object -comobject Excel.Application
$wbPersonalXLSB = $excel.workbooks.open($XLSB)
$workbook = $excel.Workbooks.Open($File)
$excel.Visible = $false
$worksheet = $workbook.worksheets.item(1)
$app = $excel.Application
$app.Run("PERSONAL.xlsb!MACRO")
$wbPersonalXLSB.Close()
$workbook.save()
$workbook.close()
$excel.Quit()
格式已更改,但图纸名称不变。
如果删除重命名工作表,powershell工作正常
Sheets(1).Select
Sheets(1).Name = "Sales"
有什么我遗漏的吗?您不需要选择工作表来命名我。我删除了选择工作表,然后再次执行相同的操作。如果我手动运行宏,但是,当与powershell结合使用时,它不会重命名工作表。请尝试使Excel可见,以便查看发生的情况。此外,还值得修改您的宏,使其不依赖于ActiveWorkbook-例如,您可以传入要对其进行操作的工作簿的名称。因此,我使其可见,并且不关闭并退出。它再次格式化了cols,但没有重命名工作表。您不需要选择工作表来命名itok。我删除了选择工作表,然后再次执行相同的操作。如果我手动运行宏,但是,当与powershell结合使用时,它不会重命名工作表。请尝试使Excel可见,以便查看发生的情况。此外,还值得修改您的宏,使其不依赖于ActiveWorkbook-例如,您可以传入要对其进行操作的工作簿的名称。因此,我使其可见,并且不关闭并退出。它再次格式化了cols,但没有重命名工作表
Sheets(1).Select
Sheets(1).Name = "Sales"