マクロでCOUNTIFを使いたい
COUNTIFを使いたく、下記のマクロを作成しました。
【転記元】A列の値が【転記先】A列には何回出てくるのか?を転記先C列に書き出す作業を
したいのですが、提示したコードだと、★のC列全てに「1」が入ってしまいます。
ところが、★★の部分を下記のように書き替えると、正常にカウントされた値が入ります。
ent.Cells(i + 1, "C").Formula = Application.WorksheetFunction.CountIf(mst.Range("A2:A100"), ent.Cells(i + 1, "A"))
なぜこうなるのか?原因が知りたくて頭を悩ませております。
お解りの方がいらっしゃればどうぞご指摘ください。
宜しくお願い致します。
------------------------------------------------------------
【転記元のシート】
A列
10
10
20
20
50
【転記先のシート】
A列 B列 C列 ←★このC列に結果を表示させたい
10 2
20 2
50 1
------------------------------------------------------------
Sub カウントテスト()
Dim ent As Worksheet, mst As Worksheet
Dim i As Integer
Dim lstcel As String
Dim mstrange As Range
Dim sach As Variant
Set ent = Workbooks("転記先").ActiveSheet
Set mst = Workbooks("転記元").ActiveSheet
Set mstrange = mst.Range("A2:A100")
i = 1
lstcel = mst.Cells(Rows.Count, "A").End(xlUp).Row
sach = ent.Cells(i + 1, "A")
For i = 1 To lstcel
If mst.Cells(i + 1, "A") <> "" Then
'↓★★ここの部分を書き替えるときちんとカウントされる
ent.Cells(i + 1, "C").Formula = Application.WorksheetFunction.CountIf(mstrange, sach)
End If
Next i
End Sub
No.1ベストアンサー
- 回答日時:
ステップ実行でデバッグして見ましたか?
検索条件である変数 sachが For Nextのループの外にあるため、i=1の時の値、「10」から変化していません。検索条件が変化していませんからCOUNTIFの結果も当然同じになります。
sach = ent.Cells(i + 1, "A")
を、For i = 1 To lstcel の下に移動しましょう。
また、セルの.Formula に検索結果の値を入れていますが、値を入れる場合は.Valueです。その辺は間違えていてもExcelが上手い事やってくれていますが、予期せぬバグの原因にならないとも限りません。出来るだけ正しく使いましょう。
>ステップ実行でデバッグして見ましたか?
お恥ずかしい話ですが、何度もしました。そして、検索値が増えないのはなぜなのか?
全く解らずに困っていました。これじゃデバックしても意味が無いですね。
>セルの.Formula
ワークシート関数を使っているのでそうしたのですが、これも間違いでしたね(恥)
ご指摘を受けて間違いに気づくことが出来ました。この度は本当にありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) 【ご教示ください】VBAの記述方法がわかりません。 2 2022/08/12 21:28
- Visual Basic(VBA) まとめシートから集計シートへA列のコードが一致したら1行コピーするマクロをネット上で見つけました。こ 1 2022/08/30 14:11
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 【前回の続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/16 16:44
- Visual Basic(VBA) 別シートのデータを参照して値を入れたい。 まとめデータシートのC列D列の値を商品一覧シートのコードが 7 2022/08/17 13:20
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 【前回の続き続きです、ご教示ください】VBAの記述方法がわかりません。 2 2022/08/24 20:49
- その他(Microsoft Office) マクロVBAについて 1 2022/09/06 18:12
- Visual Basic(VBA) Sheet1をフィルターで「りんご」を抽出し、Sheet2へ地域を貼り付ける下記マクロを変更して S 2 2022/12/11 03:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
首吊りどこ締めるの
-
彼女のことが好きすぎて彼女の...
-
勃起する時って痛いんですか? ...
-
白血球が多いとどんな心配があ...
-
検便についてです。 便は取れた...
-
これって喉仏ですか? 私は女性...
-
腕を見たら黄色くなってる部分...
-
至急!尿検査前日にオナニーし...
-
精子が黄色?
-
舌の裏の痛みのないプツプツの...
-
口の中に黒い血の塊
-
風俗店へ行く前のご飯
-
筋トレするとチンコが縮んじゃ...
-
射精をして1週間以内に尿検査を...
-
中出しをするとお腹が痛い・・・。
-
喉が痛く、初診の病院にいった...
-
納豆食べた後の尿の納豆臭は何故?
-
甲状腺腫れ
-
便潜血検査(検便)で柔らかい...
-
おへその少し上が痛いのですが…
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
至急!尿検査前日にオナニーし...
-
首吊りどこ締めるの
-
尿検査の前日は自慰控えたほう...
-
尿検査前日に自慰行為した時の...
-
検便についてです。 便は取れた...
-
白血球が多いとどんな心配があ...
-
中出しをするとお腹が痛い・・・。
-
射精をして1週間以内に尿検査を...
-
彼女のことが好きすぎて彼女の...
-
腕を見たら黄色くなってる部分...
-
勃起する時って痛いんですか? ...
-
変な話しになります。尿検査で...
-
これって喉仏ですか? 私は女性...
-
EXCELで条件付き書式で空白セル...
-
男です。昨日の午後3時くらいに...
-
今朝、毎朝の習慣でオナニーし...
-
納豆食べた後の尿の納豆臭は何故?
-
1日前の検尿
-
値が入っているときだけ計算結...
-
精子が黄色?
おすすめ情報