次の行に沿って試してみてください。
Sub UpdateColD()
Dim ws1 As Worksheet
Dim strDate As String
Dim lngLastRow As Long
Dim lngDateRow As Long
Set ws1 = ActiveWorkbook.Worksheets("Sheet1")
'Find the last row in column D - we will clear all cells until and including this row
lngLastRow = ws1.Range("D" & Rows.Count).End(xlUp).Row
' Get Date - careful with formatting and types, I've used a string
strDate = ActiveWorkbook.Worksheets("Sheet2").Cells(16, 1)
' Iterate over all rows until you find the value
For r = 1 To lngLastRow
If ws1.Cells(r, 1) = strDate Then
lngDateRow = r
Exit For
End If
Next r
' Only clear if the date was found
If lngDateRow > 0 Then
ws1.Range(ws1.Cells(lngDateRow + 1, 4), ws1.Cells(lngLastRow, 4)).Clear
End If
End Sub
ご協力いただきありがとうございますが、マクロを実行すると何も起こりません。 – lofgren
コードにステップインして何が起こるかをご覧ください。私は、ワークシートが "Sheet1"と "Sheet2"と呼ばれていると仮定しました。ワークブックのレクリエーションで私のために働いたので、違いを見つけるのに問題があります;) – pwwolff
私はもちろん、もう一度やり直します。はい、シートの名前は "Sheet1"と "Sheet2"です。初めて私は何の誤りもなかった。しかし、何も起こっていない.. :))私はこのソリューションについては、それは私はtoughtそれは非常に簡単になるtought初めて。今私はつまらない:)だから、ちょうどSheet2の日付を見つける!A16、この日付はSheet1で見つける!列Aは、Sheet2!A16の日付から開始して列D全体を削除します。私はもう一度やり直してお知らせします。ありがとうございますpwwolff! – lofgren