2016-03-30 3 views
-1

私はいくつかの支払い計画を設定しています。行には通常、顧客情報とともに2〜4つの異なる日付が含まれます。今日の日付を含む行をSheet1からSheet2にコピーしたいと思います。行に今日の日付が含まれている場合、行全体を別のシートにコピーするにはどうすればよいですか?

ご協力いただきありがとうございます。追加情報が必要な場合はお知らせください。

編集:ここでは動作しないいくつかのものです:

Sheet2の

List Range: Sheet1!$1:$1048576 
Criteria Range: =today() 
Copy To: $a$1 

から高度なフィルタを使用しても

List Range: Sheet1!$1:$1048576 
Criteria Range: =a1 //with a1 containing the formula =today() 
Copy To: $b$1 
+0

あなたはここで、あなたが努力を示す必要があることを知っています。 – findwindow

+0

私は本当に人を試しています。私はちょうどグーグルのものを試してみて30分過ごしましたが、私が試しているものは何も働いていないようです。 – mzrt

+0

あなたが試したことを示してください。 – findwindow

答えて

2

次のように動作するはずです。

Sub copyIfTodaysDate() 

    Dim todaysDate As Date 
    Dim rngData As Range 
    Dim rngRow As Range 
    Dim rngCell As Range 
    Dim counter As Integer 

    todaysDate = Date 
    counter = 1 

    Set rngData = Worksheets("Table1").UsedRange 

    For Each rngRow In rngData.Rows 
     For Each rngCell In rngRow.Cells 
      If rngCell.Value = todaysDate Then 
       rngRow.Copy Worksheets("Table2").Rows(counter).Columns(1) 
       counter = counter + 1 
       Exit For 
      End If 
     Next 
    Next 

End Sub 
+0

ありがとうございます。これはうまくいきますが、今日の日にちが何かを見たいときは毎回実行しなければなりません。私は毎回実行する必要はありません別の方法はありますか?私はAdvanced Filterでこれを行うことができたという印象を受けました。 – mzrt

+1

はい、上記のコードをWorkbook_Openイベントに入れることができます。こうすることで、ワークブックを開くたびにTable2が自動的に入力されます。ただし、データセットが非常に大きい場合は、ブックを開くときにコードが常に実行されるため、時間がかかることがあります。 – LMM9790

+0

恐ろしい。データセットは比較的小さく、約100行しかありません。これは素晴らしい動作します。 – mzrt