|
>4行目か6行目のどちらかがCombo科目.Textであるもの・・・を抽出するにはどうしたらよろしいでしょうか?
違う列の物をOr検出できません。
作業列を使ってください。
下記コードを組み合わせて作ることになります。
例えば、H列にこんな感じの関数を入れて、
H列の「TRUE」をオートフィルタする。
(D列、F列のどちらかが「現金」の場合)
H2
=OR(D2="現金",F2="現金")
マクロだと
Range("H2").Resize(任意のサイズ).Formula = _
"=OR(D2=""" & Combo科目.value & """,F2=""" & Combo科目.value & """)"
作業列を使えば、自分の抽出したい条件の関数を入れて、TRUEかFALSEのどちらかを抽出すれば良いので楽かと思います。
こんな風にして
'Application.ScreenUpdating = False
With Sheets("【仕訳帳】")
.AutoFilterMode = False
LastR = .Range("A65536").End(xlUp).Row
With .Range("A1")
'↓「H2」
With .Offset(, 7)
.Value = "適当な名"
.Offset(1).Resize(LastR - 1).Value = ""
.Offset(1).Resize(LastR - 1).Formula = "=OR(D2=""" & "現金" & """,F2=""" & "現金" & """)"
End With
.AutoFilter Field:=8, Criteria1:="TRUE"
End With
Set myrag = .Range("A2:A" & LastR).SpecialCells(xlCellTypeVisible)
.AutoFilterMode = False
'↓作業列のクリア。後で、コメントを外す。
'.Range("A1").Offset(, 7).Resize(LastR).Value = ""
For Each Cel In myrag
'ここでどこに入れるのか判定して、適度な所にいれる。
MsgBox "抽出された行 " & Cel.Row & vbLf & _
"借方科目 " & Cel.Offset(, 3).Value & " " & Cel.Offset(, 3).Address & vbLf & _
"貸方科目 " & Cel.Offset(, 5).Value & " " & Cel.Offset(, 5).Address
Next
End With
Set myrag = Nothing
Application.ScreenUpdating = True
|
|