同じブックに2枚のExcelシートがあります。シート1とシート2。 sheet1の は毎月の日付を生成します。たとえば、列z1は3/1/2017、AA1は3/2/2017、AB1は3/3/2017などとなります。1枚のシートから情報を収集し、それを別のシートに入れます。
次に、シート2では、列N、O、Pにいくつかの数字があります。毎日これらの数字は異なる可能性があります。
シート1とシート2の両方の列CにSNが格納されています。
ここでは、sheet2(N + O + P)からN、O、P列の値を収集し、同じSNでhead = Dateという列のsheet1に格納しようとしています。 次のコードを使用しようとしていますが、これは機能しません。
誰もがNext r
は見当違いである。この
Sub registrereren()
Dim FirstDate As Date
Dim LastDate As Date
Dim NextDate As Date
Dim r As Long
Dim j As Long
Dim lastrow1 As Long
FirstDate = DateSerial(Year(Date), Month(Date), 1)
LastDate = DateSerial(Year(Date), Month(Date) + 1, 0)
lastrow1 = Sheets("Registration").Range("C" & Rows.Count).End(xlUp).Row
For r = 27 To LastDate
If Cells(1, r) = Date Then
Next r
For j = 2 To lastrow1
Sheets("Sheet1").Cells(j, r).Value = WorksheetFunction.VLookup(Sheets("Sheet1").Range("C" & j).Value * 1, Sheets("Sheet2").Range("C2 : P3000"), 11 + 12 + 13, 0)
Next j
End If
End Sub
どのように動作しませんか?それはエラーを出しますか? 'Range()'と同様に、 'Rows.Count'をどのシートに実行させるかを指定する必要があります:' Sheets( "Registration")Range( "C"&Sheets( "Registration")セル(1、r) '*が' Date'と等しくない場合、何が起こるかを知るためには?私が思うあなたのループは、少し不調です。なぜなら、もし私が理解すれば、Cells(1,27)がDateと等しくなければ、それは一度だけ実行されるから、あなたはサブの終わりに行くつもりだから、それは起こっているのですか?確認するには、「F8」を押します。 – BruceWayne
こんにちはブルース。ご返信ありがとうございます。次のrの行にエラーが表示され、次のことなしに次のように表示されます。私は本当にVBAの進歩ではありません。私はsheet1とsheet2の両方でrow.countを実行したい。最初のループでsheet1の最初の行をチェックします。そしてそれが日付と等しい頭部を見つけるとき。私は、シート2の列N、O、Pから情報を収集し、日付に等しいeaderを持つ列に貼り付けたいと思います。 –