[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『VBAでCountifs関数の検索条件をループしたい』(ホコ)
こんにちは。WebでVBAの構文を探しながら独学で作成しているのですが、ループで参照値を変える方法が分かりません。お助けいただけると嬉しいです。
Dim i As Long
For i = 1 to 10
If Range("Q" & i) ="", then
Else Range("P" & i).Formula ="=COUNTIFS(L:L,Q2)"
End If
Next i
End Sub
上記の構文の通り、P1セル〜P10セルに「=COUNTIFS(L:L,Q2)」が入力されます。
行いことは、Countifsの参照セルも1行ずつ下に移動したい。
P2セルには「=COUNTIFS(L:L,Q2)」
P3セルには「=COUNTIFS(L:L,Q3)」
P4セルには「=COUNTIFS(L:L,Q4)」
どのように構文を作成すればよいのでしょうか?
< 使用 Excel:Office365、使用 OS:Windows10 >
やり方はいくつかありますが、
Sub sample1() ' 変数iをつかって、式を変化させる Dim i As Long For i = 1 To 10 If Range("Q" & i) <> "" Then Range("P" & i).Formula = "=COUNTIFS(L:L,Q" & i & ")" End If Next i End Sub
Sub sample2() ' FormulaR1C1プロパティをつかってR1C1形式の相対参照を使う Dim i As Long For i = 1 To 10 If Range("Q" & i) <> "" Then Range("P" & i).FormulaR1C1 = "=COUNTIFS(C12,RC[1])" End If Next i End Sub (´・ω・`) 2021/08/20(金) 11:24
ちょっと入力する式を変えて Sub tst()
Range("P1:P10") = "=IF(Q1="""","""",COUNTIF(L:L,Q1))"
End Sub としてしまうのはどうだろうか? (ねむねむ) 2021/08/20(金) 11:29
ありがとうございました。
Sample1の方法、アイデアは浮かんでいたのですが自分では式をかけなかったのです。大変参考になりました。
そもそも式を変えてシンプルにする Sample2もいいですね。もう少し頭を柔軟にしたいと思いました。
(ホコ) 2021/08/20(金) 12:45
1番目の回答は´・ω・`さんですよ。 (ねむねむ) 2021/08/20(金) 12:48
失礼いたしました!度々ありがとうございます。
´・ω・` 様
大変ありがとうございました。勉強になりました。
(ホコ) 2021/08/20(金) 13:13
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.