[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『複数列の条件に合致する』(みどり)
A B C
10 101 青
11 101 青
12 101 白
10 102 白
11 102 赤
12 102 赤
このときの、A列が11、B列が102,C列が赤となるときのセル、行数を取得するための、それぞれのvbaを教えてください(セルはA5、5行目となります。)
ちなみに、行の内容が重複することはありません。
初歩的なことを聞いて申し訳ありません。
よろしくお願いします。
< 使用 Excel:Excel2019、使用 OS:Windows10 >
数式で一発なんですけど、
=TEXTJOIN(",",TRUE,REPT("A"&ROW(A1:A6),(A1:A6=11)*(B1:B6=102)*(C1:C6="赤")))
マクロなんですね。
Sub test() Dim rRw As Range
For Each rRw In Range("A1:C6").Rows If rRw.Cells(1, 1) = 11 And _ rRw.Cells(1, 2) = 102 And _ rRw.Cells(1, 3) = "赤" Then
MsgBox "ここ→ " & rRw.Cells(1, 1).Address(False, False) Exit For
End If Next End Sub
(半平太) 2021/01/23(土) 00:02
rRwやrRw.Cells(1, 1)を取得することが最終目的ではなく、それらを使っていきたいです。
その場合、MsgBox "ここ→ " & rRw.Cells(1, 1).Address(False, False)を消して、新たな行を追加していったらよいですか。
よろしくお願いします。
(みどり) 2021/01/24(日) 11:44
それか、最初にset rRwと定義することができればよいのかと思ったのですが、そのように記載することはできるのでしょうか。
よろしくお願いいします。
(みどり) 2021/01/24(日) 12:14
Sub test() Dim rRw As Range Dim rTargetA As Range
For Each rRw In Range("A1:C6").Rows If rRw.Cells(1, 1) = 11 And _ rRw.Cells(1, 2) = 102 And _ rRw.Cells(1, 3) = "赤" Then
Set rTargetA = rRw.Cells(1, "A") 'A列のセルをセットする Exit For End If Next
If rTargetA Is Nothing Then MsgBox "該当なし" Exit Sub End If
' rTargetAを使って何かする。 MsgBox rTargetA.Address End Sub
(半平太) 2021/01/24(日) 12:36
ありがとうございます。
印刷をしたくて以下のように書いたのですが、「1004実行時エラー、rangeメソッドは失敗しました。globalオブジェクト」となってしまいました。
Dim a As Long
.PageSetup.PrintArea = Range(Cells(a, 1), rTargetA).Address
どう修正したらよいか、お分かりになりますでしょうか。
よろしくお願いします。
(みどり) 2021/01/25(月) 22:44
>.PageSetup.PrintArea = Range(Cells(a, 1), rTargetA).Address .PageSetup.PrintArea = Range(Cells(1,"A"), rTargetA).Address ↑ の間違いじゃないですか?
(半平太) 2021/01/25(月) 23:03
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.