PowerShell - Excel - 选择工作簿中的第一个工作表

时间:2014-02-03 19:08:37

标签: excel powershell

我有一个循环遍历工作簿的脚本,并将所有选项卡复制到新工作簿。但是出于某种原因,始终会跳过第一个标签

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

有人能说清楚这里发生了什么吗?

附加信息:

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

1 个答案:

答案 0 :(得分:2)

从您发布的代码看起来它可能正在跳过最后一张而不是第一张。它应该是

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

当你在那里有<个符号(而不是<=),并且因为你使用的是非零的索引,当它到达最后一个工作表时i将是相等的到worksheets.Count,因此要跳过它,因为要求它小于worksheets.Count