前提・実現したいこと
CSVファイルからデータをExcelに取り込み、条件に合うデータの個数を集計するマクロを作成したいと考えています。
発生している問題・エラーメッセージ
現在はデータの個数の集計結果を表示する(図の9~11行目)ようなコードにしていますが、 図の赤枠内を変更したら変更が反映されるように、countifの数式が入るようにしたいのです。 調べてみると「Formula」を使うといいことは分かったのですが、コードの記述につまずいて おります。宜しくお願い致します。
該当のソースコード
現在のコードを以下に記します。 Sub 考課取込() Dim fname As Variant Dim wb As Workbook Dim sh As Worksheet Dim r As Long Dim rng As Range fname = Application.GetOpenFilename("CSVファイル(*.csv),*.csv", MultiSelect:=False) If VarType(fname) = vbBoolean Then Exit Sub Application.ScreenUpdating = False With Worksheets("Sheet1") Set wb = Workbooks.Open(fname) Set sh = wb.Worksheets(1) For r = 1 To sh.Cells(Rows.Count, 1).End(xlUp).Row .Cells(r + 1, 1).Resize(, 2).Value = sh.Cells(r, 6).Resize(, 2).Value .Cells(r + 1, 3).Resize(, 3).Value = sh.Cells(r, 30).Resize(, 3).Value Next r wb.Close .Cells(r + 2, 2).HorizontalAlignment = xlCenter .Cells(r + 2, 2).Interior.Color = RGB(255, 242, 204) .Cells(r + 2, 2).Value = "A" Set rng = .Range("C2:C" & .Cells(Rows.Count, 3).End(xlUp).Row) .Cells(r + 2, 3).HorizontalAlignment = xlCenter .Cells(r + 2, 3).Interior.Color = RGB(255, 242, 204) .Cells(r + 2, 3).Value = WorksheetFunction.CountIf(rng, "A") Set rng = .Range("D2:D" & .Cells(Rows.Count, 4).End(xlUp).Row) .Cells(r + 2, 4).HorizontalAlignment = xlCenter .Cells(r + 2, 4).Interior.Color = RGB(255, 242, 204) .Cells(r + 2, 4).Value = WorksheetFunction.CountIf(rng, "A") Set rng = .Range("E2:E" & .Cells(Rows.Count, 5).End(xlUp).Row) .Cells(r + 2, 5).HorizontalAlignment = xlCenter .Cells(r + 2, 5).Interior.Color = RGB(255, 242, 204) .Cells(r + 2, 5).Value = WorksheetFunction.CountIf(rng, "A") (以下省略)
試したこと
ここに問題に対して試したことを記載してください。
補足情報(FW/ツールのバージョンなど)
ここにより詳細な情報を記載してください。
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/01/23 14:56
2021/01/24 09:16
2021/01/25 00:11