PowerShell – Excel – select工作簿中的第一个工作表

我有一个脚本循环通过工作簿,并将所有选项卡复制到一个新的工作簿。 不过出于某种原因, 第一个标签总是被跳过

for ($i=1; $i -lt $myworkbook.Worksheets.Count; $i++) { ... other code $SheetToCopy = $source.Worksheets.Items($i) $sheetToCopy.Copy($target) } 
  • 我已经尝试将$i设置$i 0,但是那么powershell抱怨零无效。
  • 尝试使用$workbook.sheets.item$workbook.worksheets.item ,但他们似乎做同样的事情

任何人都可以点亮这里发生的事情吗?

附加信息:

工作簿将永远不会有相同的命名选项卡,因此我使用索引而不是名称。

从你发布的代码看,它可能会跳过最后一张,而不是第一张。 它应该是

 (int i = 1; i <= worksheets.Count; i++) // roughly translated from C# 

当你有< sign(而不是<= ),因为你正在使用一个非零的索引,当它碰到最后一张纸时, i将等于worksheets.Count ,因此跳过它,因为你需要它小于worksheets.Count