vbaのFindで,行を指定して下から上へ検索したい。
vbaの右端から,(FindNext,FindPrevious,after他)メソッドでできますか。
(参考)Range.Find メソッド (Excel)
https://msdn.microsoft.com/ja-jp/vba/excel-vba/articles/range-find-method-excel
Sub atest()
Dim Moji As String
Dim iAtta As Long
Moji = "宝物"
Cells(2, 2) = Moji
Cells(2, 3) = Moji
Call myFind右端から(Moji, 2, iAtta)
MsgBox Moji & "は" & Cells.Find(Moji).Column & "列目にありました。" & vbCrLf & _
Moji & "は最後" & iAtta & "列目にありました。"
End Sub
Sub myFind右端から(Moji As String, iGyome As Long, iAtta As Long)
For i = Cells(iGyome, Columns.Count).End(xlToLeft).Column To 1 Step -1
If InStr(Cells(iGyome, i), Moji) > 0 Then
iAtta = i
Exit Sub
End If
Next
MsgBox iGyome & "行目に「" & Moji & "」を入れて下さい。"
End
End Sub
'宝物は2列目にありました。
'宝物は最後3列目にありました。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーー
20180420 追加
vbaのFindで,行を指定して下から上へ検索したい。
(参考)Findで下から上へ検索したい
http://www.relief.jp/docs/excel-vba-find-from-bottom.html
Sub atest()
Dim Moji As String
Moji = "宝物"
Cells(2, 2) = Moji
Cells(2, 3) = Moji
MsgBox Moji & "は" & Rows(2).Find(Moji).Column & "列目にありました。" & vbCrLf & _
Moji & "は最後" & Rows(2).Find(What:=Moji, SearchDirection:=xlPrevious).Column & "列目にありました。"
End Sub
'宝物は2列目にありました。
'宝物は最後3列目にありました。
SearchDirection:=xlPreviousで解決しました。ありがとうございました。