1
VBAを使用してExcelで予定リストを自動化しようとしていますが、Eisenhower matrixを作成しています。タスクリストからアイゼンハワーマトリックスを自動的に作成する
私は次のように私のto-doリストを構築しています
Task | Urgent | Important | done
T1 | x | x |
T2 | | x |
T3 | x | |
T4 | | |
私は緊急性とimportancyの両方で私のタスクリストをフィルタリングして、「完了」と表示された行を除外することができています。
私はそれがこのようになりますように、私のマトリックスを作成したい:
__________|IMPORTANT|NOT IMPORTANT
URGENT | T1 | T3
----------|---------|--------------
NOT URGENT| T2 | T4
私はそれが私のフィルター行を選択するように、私のVBAをコーディングする方法がわからない、どのように判断し行列が大きくなり、それに応じて行列が作成されます。
ExcelのVBAでrange.count()
プロパティを使用して行の数をカウントしようとしていますが、T2とT4を揃えられません。また、毎回 'task'ヘッダーもコピーします。次のように
私がこれまで持っているコードは次のとおりです。
Sub populate_matrix()
Dim i As Integer
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=5, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=2, Criteria1:="<>"
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=3, Criteria1:="<>"
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
i = Range(Selection).Count
Selection.Copy
Sheets("work matrix").Select
Range("B2").Select
ActiveSheet.Paste
Sheets("tasks").Select
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=5, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=2, Criteria1:="<>"
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=3, Criteria1:="="
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("work matrix").Select
Range("B" & i).Select
ActiveSheet.Paste
Sheets("tasks").Select
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=5, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=2, Criteria1:="<>"
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=3, Criteria1:="="
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("work matrix").Select
Range("c2").Select
ActiveSheet.Paste
Sheets("tasks").Select
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=5, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=2, Criteria1:="="
ActiveSheet.Range("$A$1:$E$55").AutoFilter Field:=3, Criteria1:="="
Range("A1").Select
Range(Selection, Selection.End(xlDown)).Select
Selection.Copy
Sheets("work matrix").Select
Range("C" & i).Select
ActiveSheet.Paste
End Subの
を更新OPのコードの後に編集
を試すことができますどのようなあなたを追加してください。これまで行ったことがあります。また、行を数えようとするならば、 'Range.Rows.Count'を使うべきです! ;) – R3uK