【发布时间】:2014-02-04 03:39:33
【问题描述】:
我有一个循环遍历工作簿并将所有选项卡复制到新工作簿的脚本。但是,出于某种原因,总是会跳过第一个标签。
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,但它们似乎做同样的事情
谁能解释一下这里发生了什么?
附加信息:
工作簿永远不会有相同的命名选项卡,因此我使用的是索引而不是名称。
【问题讨论】:
-
你确定这是第一个被跳过的标签而不是最后一个吗?从您的代码中的样子来看,它应该是
(i = 1; i <= worksheets.Count; i++),否则当它到达索引为 4 且 i 为 4 的最后一张纸时,它永远不会复制它。除非那是你的本意。 -
啊,好眼力。我会去测试一下,但我认为你是对的。我习惯从 0 开始,所以可以使用
<,但在这种情况下我需要使用<= -
是的,所有这些基于非零索引的语言都是为鸟类准备的!希望能解决。
-
您可以将其添加为答案,我会接受。这就是问题所在。
标签: excel powershell