我在VBA中的while循环中有一个特定的行,它不执行但每个其他行都执行

时间:2017-10-11 23:04:33

标签: excel-vba while-loop vba excel

提前感谢您完成此问题。我是Excel VBA世界的新手。

我有一张我正在处理的电子表格。此电子表格包含一些包含多个列和行的原始数据。我试图循环整个工作表并基于某些条件(如本周的日期或项目有一个值打开),我试图将一行的某些单元格复制到另一个选项卡(工作表)电子表格。

现在,我的while循环工作正常,一些单元格值被复制到下一个选项卡,但只有一个单元格值没有被复制。当我尝试调试它。我看到该行正在执行但该值未被复制。我仔细检查,看看我是否指的是正确的列,这是正确的。请参阅下面的代码。我将Sht1Sht2作为公共常量定义在Sub之外,用于工作表名称"跟踪表"和" ItemsDueSheet"。

Public Const Sht1 = "Tracking Sheet"
Public Const Sht2 = "ItemsDueSheet"

Sub ItemsDueThisWeek()

Dim rwCounter As Integer
Dim rstart As Integer
Dim rEnd As Integer
Dim increment As Integer
rstart = 3
rEnd = 249
rwCounter = 5
increment = 1
While (rstart <= rEnd)
    'MsgBox (Format(Sheets(1).Cells(rStart, 16)))
    If (Format(Sheets(Sht1).Cells(rstart, 16), "ww-yyyy") = Format(Date, "ww-yyyy") And Sheets(Sht1).Cells(rstart, 15) <> "Closed - Done") Then
        Sheets(Sht2).Cells(rwCounter, 2) = increment
        Sheets(Sht2).Cells(rwCounter, 4) = Sheets(Sht1).Cells(rstart, 1)
        Sheets(Sht2).Cells(rwCounter, 5) = Sheets(Sht1).Cells(rstart, 2)
        **Sheets(Sht2).Cells(rwCounter, 8) = Sheets(Sht1).Cells(rstart, 7)**
        Sheets(Sht2).Cells(rwCounter, 3) = Sheets(Sht1).Cells(rstart, 13)
        Sheets(Sht2).Cells(rwCounter, 6) = Sheets(Sht1).Cells(rstart, 16)
        Sheets(Sht2).Cells(rwCounter, 7) = Sheets(Sht1).Cells(rstart, 12)

        rwCounter = rwCounter + 1
        increment = increment + 1
        'MsgBox ("A")

    Else

        'Sheets(2).Cells(rwcounter, 5) = Sheets(1).Cells(rStart, 1)
        'Sheets(2).Cells(rwcounter, 6) = Sheets(1).Cells(rStart, 2)
    End If

    rstart = rstart + 1

Wend

End Sub

这是ItemsdueSheet的布局,我试图根据跟踪表中的按钮点击来复制单元格。

enter image description here enter image description here

1 个答案:

答案 0 :(得分:0)

@KacireeSoftware - 所以我正在测试当前日期是否在本周,并且O Child状态列不等于Closed-Done然后复制CAPA#,子任务编号,简短描述,截止日期,工作流成员和实体到新表。 你的假设是对的。我突出显示了无效的代码。 目前,如何设置电子表格,只要有产品,没有儿童截止日期,并且有儿童任务的地方没有截止日期。

@ YowE3K - 是列G仅为每个CAPA#的标题记录填充。

感谢@KacireeSoftware和@ YowE3K的帮助。您的问题让我帮助您找到问题。

代码的问题在于它当前正在测试当前日期是否在本周,并且O Child状态列不等于Closed-Done然后复制CAPA#,子任务编号,简短描述,截止日期,工作流成员和实体到新工作表。但是,这些行的电子表格中的“产品/流程实体”列为空。因此,即使它执行它,它也没有找到任何内容进行复制,并在这些行中复制空白。

再次感谢你让我思考这个方向。你们真棒。