您好,我有一个Powershell脚本,该脚本过去可以在excel电子表格中正常运行,但现在似乎出现了故障,无法对答案进行故障排除。
代码的精简版是这个
$pastecounter= 2
$intRowCount = $WS1.usedRange.Rows.Count
for($i=6; $i -le $intRowCount; $i++)
{
$startRow = $i
<A lot of work being done to each row>
$WS1.Range("A"+$startRow+":H"+$startRow).Copy()
$WS2.Range("A"+$pastecounter+":H"+$pastecounter).Pastespecial()
$pastecounter++
$i=$j-1
}
这将迭代我的行,执行工作并将行逐行粘贴到新工作表中,并用于工作。
我今天开始运行它,一旦到达数据的最后一行,它便开始无限粘贴。
我已经回显了所有输出正确的变量,直到最后一行为止,并且我尝试添加Break,但是在for循环内,粘贴一行后它会中断,而在for循环外,它无法解决问题。
现在我唯一能想到的是excel电子表格可能存在问题。但是我删除了所有空行,并且在没有帮助的情况下清除了excel中的格式。
这里的任何Excel或Powershell专家可能知道一些故障排除方法?
谢谢!
答案 0 :(得分:0)
乍一看,问题似乎在于如何增加循环。我对您为什么要按自己的方式处理问题有很多疑问,但这应该可以帮助您指出正确的方向...要进行故障排除,请运行以下命令:
$pastecounter= 2
$intRowCount = $WS1.usedRange.Rows.Count
for($i=6; $i -le $intRowCount; $i++)
{
# // added
Write-Host "Is `$i lessOrEqual to `$inRowCount?" -f Yellow -NoNewline
if($i -le $intRowCount){
Write-Host " Yes" -f Green
} else {
Write-Host " No" -f Red
}
Write-Host ("`$i = {0}" -f $i) -f Cyan
Write-Host ("`$intRowCount = {0}" -f $intRowCount) -f Cyan
# // added
$startRow = $i
<A lot of work being done to each row>
$WS1.Range("A"+$startRow+":H"+$startRow).Copy()
$WS2.Range("A"+$pastecounter+":H"+$pastecounter).Pastespecial()
$pastecounter++
$i=$j-1
}