Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/28.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel 使用Powershell运行时,宏重命名工作表将不起作用_Excel_Vba_Powershell - Fatal编程技术网

Excel 使用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

我有一个宏,可以格式化列并将工作表(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-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"