2017-10-14 9 views
2

短い質問。私は2つのシート(Sheet1、Sheet2)で1つのExcelファイルを持っています。シート1の列Aには日付のリストがあり、列Dにはいくつかの数字があります。 sheet2 A16には、日付があります。シート2の日付に基づいてシート1の内容をクリアします。

シート2のセルA16にある日付から開始して、シート1の列Dの数値を削除したいと考えています。シート2の日付!A16毎日変更されますので、私は別の日付から始まる番号を削除します...

シート1枚の画像 enter image description here


シート2画像
enter image description here

答えて

0

次の行に沿って試してみてください。

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 
+0

ご協力いただきありがとうございますが、マクロを実行すると何も起こりません。 – lofgren

+0

コードにステップインして何が起こるかをご覧ください。私は、ワークシートが "Sheet1"と "Sheet2"と呼ばれていると仮定しました。ワークブックのレクリエーションで私のために働いたので、違いを見つけるのに問題があります;) – pwwolff

+0

私はもちろん、もう一度やり直します。はい、シートの名前は "Sheet1"と "Sheet2"です。初めて私は何の誤りもなかった。しかし、何も起こっていない.. :))私はこのソリューションについては、それは私はtoughtそれは非常に簡単になるtought初めて。今私はつまらない:)だから、ちょうどSheet2の日付を見つける!A16、この日付はSheet1で見つける!列Aは、Sheet2!A16の日付から開始して列D全体を削除します。私はもう一度やり直してお知らせします。ありがとうございますpwwolff! – lofgren

関連する問題