2017-02-17 8 views
-1

私の現在のExcelファイルから不完全なすべてのライブリストを作成したいと思います。 毎週2月6日の週、2月13日の週、2月20日の週などの新しいタブです。これらの各タブには、開いているか閉じるとしてマークされるタスクの実行リストがあります。目標は、開いているとマークされているすべてのタスクを別々の名前の「未処理アイテム」に表示することです。Excelで不完全なタスクのリストを作成

「オープン」とマークされたすべてのアイテムのライブリストを作成するために、どのようにエクセルシートをプログラミングできますか?私はif文を使用しようとしましたが、行全体を「未処理アイテム」タブに移動する方法がわかりません。 はあなたが

+0

質問が広すぎる試みることができるありがとうございます。この時点で試行されたコードと、それが失敗する特定の問題を提供します。 – Zerk

+0

私はif文を使用しようとしましたが、 "Open Items"タブに行全体を移動する方法がわかりません – TacosaurusRex

答えて

1

あなたはこの

Sub main() 
    Dim ws As Worksheet, openWs As Worksheet 

    Set openWs = Worksheets("Open Items") '<--| be sure you already have a sheet named after "Open Items" 
    For Each ws In Worksheets '<--| loop through worksheets 
     If ws.Name <> "Open Items" Then '<--| if current sheet isn't named after "Open Items" 
      With ws 
       With .Range("C3", .Cells(Rows.Count, "C").End(xlUp)) '<--| reference its column AE range from row 1 (header) down to the one corresponding to last column A not empty row 
        .AutoFilter Field:=1, Criteria1:="Open" '<--| filter column C cells with "Open" content 
        If Application.WorksheetFunction.Subtotal(103, .Cells) > 1 Then '<-_| if any filtered cell found other than headers 
         .Offset(1).Resize(.Rows.Count - 1, 7).SpecialCells(xlCellTypeVisible).Copy openWs.Cells(Rows.Count, 1).End(xlUp).Offset(1) '<--| '<--| copy filtered cell (skipping headers) and paste then from "Open Items" sheet column A first empty cell after last not empty one 
        End If 
       End With 
       .AutoFilterMode = False 
      End With 
     End If 
    Next 
End Sub 
+0

素晴らしいです。コピーされた行の範囲をどのように変更することができますか。現在は、 "Open"セルの後ろのすべてをコピーしますが、priorityカラムとdatesカラムも含めたいと思います。 – TacosaurusRex

+0

ようこそ。それがあなたの質問を解決するならば、答えを受け入れたものとしてマークしてください。ありがとうございました。範囲を広げることについては 'Offset(、nColOffset)'( 'ncolOffset'列のオフセットを指定する - それは負の数でもよい)と' Resize(、nColResize) '(' nColResize'列のサイズ変更 - 正の値)のパラメータ – user3598756

+0

オフセット(、nColOffset)またはサイズ変更(、nColResize)を見つけることができません。 – TacosaurusRex