2017-03-06 28 views
0

Microsoft Projectのタイムラインからデータを取得するワークシートがあります。私のExcelワークシートでは、現在の日から起きている7日までのタスクを除くすべてを除外したいと考えています。それに伴う問題は、私は、フィルタの開始日の前日に開始複数日のタスクを持っている場合、それはに運ぶにもかかわらず、除外されるということですExcel:SetFilterDateRangeには、選択した開始日より前に開始されたイベントが含まれます。

Private Sub CommandButton1_Click() 
    ActiveWorkbook.SlicerCaches ("NativeTimeline_Filter_Date").TimelineState. _ 
    SetFilterDateRange Date, DateAdd ("d",7, Date) 
End Sub 

:ここで私はそれがいることをしていたコードです私が見たい範囲。誰もが私はどのようにこのコードを書き直すことができるので、これらの複数日のタスクが含まれて知っていますか?ありがとう!

編集例です。これは仕事に関連するものなので、データを共有することはできませんが、日付とタスクの2つの列です。だから、入力の短いスニペットは次のようになります。

Th 03/02    | Task 1 
Fr 03/03 to Th 03/09 | Task 2 
Fr 03/10    | Task 3 
Mo 03/13    | Task 4 
Tu 03/14 to We 03/15 | Task 5 

私は今から7日まで、今日からタスクのみを表示するように私のフィルタを適用すると、私はそれが仕事を通じて2行のみを表示したいと思います4.何が起きるかは、タスク2の開始日が自分の範囲外になるため、タスク3〜5で行を取得することです。

+0

はあなたのデータのサンプルを投稿できるテストと所望の出力にその日付に変換INGの? –

+0

@MarkFitzgeraldねえ、私はベアボーンの例でオリジナルの投稿を編集しました。それは仕事に関連しているので、実際のデータを共有することはできませんが、この例ではかなりうまく説明されています。 – user114338

答えて

0

あなたが別の列にあなたの終了日を分割する気にしない場合は、おそらくIFのネストされたOR AND式を使用してVBAせずにこれを行うことができます:DとEがで使用されていない Nested IF OR AND

列を私はそれらをOR式の構成要素を示すために含めました。列Dの見出しは「A>今日」、「<今日+ 7」にする必要がありますが、見出しを変更せずに式を変更しました。

列を追加すると、それはVBAで行うことができるが、それは非自明なタスクになるオプションではありません場合は、次のよう開始日を取得します

  • :データの行ごとに

    • 列A「Thの03/02」
    • から文字列は、それがその後、strと終了日を抽出しない場合は、日付変数開始日
    • テストに列A「が」
    • それに持っている場合は、その変換します
    • は別の変数終了日
    • If StartDate >= Today And EndDate < Today + 7 then
    • TestRow.EntireRow.Hidden = False Else TestRow.EntireRow.Hidden = True
  • 関連する問題