ありがとうございます。私はExcelのVBAの世界で初心者です。実行していないVBAのwhileループ内に特定の行がありますが、他の行が1行おきに実行されます
私は作業しているスプレッドシートを持っています。このスプレッドシートには、複数の列と行を持つ生データがあります。私はシート全体をループし、特定の条件に基づいています(今週の値下がりやアイテムには値が開いているなど)、行の特定のセルを別のタブ(シート)にコピーしようとしています。スプレッドシート。
これで、whileループが正常に機能し、一部のセル値が次のタブにコピーされますが、1つのセル値だけがコピーされません。私はそれをデバッグしようとするとき。私は行が実行されているが、値がコピーされていないのが分かります。私は正しい列を参照しているかどうかを確認して、それが正しいかどうかチェックします。以下のコードをご覧ください。私はSub
の外に定義された公的定数としてSht1
とSht2
を持っています。これはシート名 "トラッキングシート"と "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のレイアウトを示します。
私にはうまく見えます。私はProduct COdeが空白のセルをいくつか見ています...あなたは確かに 'Due'の値がありますか? (私は**と一緒に作業していないものをハイライトしたと仮定します) – KacireeSoftware
データによって判断すると、現行の週に該当する予定日がある行では、列Gは常に空白になっているようです。列Gは、各「CAPA#」の「ヘッダー」レコードのように見える行にのみ挿入されますか? – YowE3K