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