提前感谢您完成此问题。我是Excel VBA世界的新手。
我有一张我正在处理的电子表格。此电子表格包含一些包含多个列和行的原始数据。我试图循环整个工作表并基于某些条件(如本周的日期或项目有一个值打开),我试图将一行的某些单元格复制到另一个选项卡(工作表)电子表格。
现在,我的while循环工作正常,一些单元格值被复制到下一个选项卡,但只有一个单元格值没有被复制。当我尝试调试它。我看到该行正在执行但该值未被复制。我仔细检查,看看我是否指的是正确的列,这是正确的。请参阅下面的代码。我将Sht1
和Sht2
作为公共常量定义在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的布局,我试图根据跟踪表中的按钮点击来复制单元格。
答案 0 :(得分:0)
@KacireeSoftware - 所以我正在测试当前日期是否在本周,并且O Child状态列不等于Closed-Done然后复制CAPA#,子任务编号,简短描述,截止日期,工作流成员和实体到新表。 你的假设是对的。我突出显示了无效的代码。 目前,如何设置电子表格,只要有产品,没有儿童截止日期,并且有儿童任务的地方没有截止日期。
@ YowE3K - 是列G仅为每个CAPA#的标题记录填充。
感谢@KacireeSoftware和@ YowE3K的帮助。您的问题让我帮助您找到问题。
代码的问题在于它当前正在测试当前日期是否在本周,并且O Child状态列不等于Closed-Done然后复制CAPA#,子任务编号,简短描述,截止日期,工作流成员和实体到新工作表。但是,这些行的电子表格中的“产品/流程实体”列为空。因此,即使它执行它,它也没有找到任何内容进行复制,并在这些行中复制空白。
再次感谢你让我思考这个方向。你们真棒。