繁体   English   中英

我的Powershell循环不会停止迭代最后一行数据

[英]My Powershell loop wont stop iterating the last row of data

您好,我有一个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专家都可能知道一些故障排除方法?

谢谢!

乍一看,问题似乎在于如何增加循环。 我对您为什么要按自己的方式处理问题有很多疑问,但这应该可以帮助您指出正确的方向...要进行故障排除,请运行以下命令:

$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
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM