[[20180514090006]] 『最終行の一つ上から上に検索』(コロン) ページの最後に飛ぶ

[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]

 

『最終行の一つ上から上に検索』(コロン)

わかりづらい点もあるかと思いますが、お時間がありましたら宜しくお願い致します。

Findを使って、最終行の一つ上の行から上へ検索して見つかったらそのセルを選択、したいのですが、どのようにすればよいでしょうか。

少し具体的にしますと、
違うシートから、検索したいシートの最終行に行ごとコピペしています。
コピーしてきた行のデータのF列のセルの値を一つ上の行から検索し、上へ検索したいです。
検索したらその行の下に最終行をコピペ(切り取り貼り付け)します。(この部分は私的には完成済みのためここでは問いません)

Columns("F").Find(c, SearchDirection:=xlPrevious).Select

このようなものにしたのですが、当然ですが、コピペしたセルものが含まれてしまい、うまくいきません。

宜しくお願い致します。

< 使用 Excel:Excel2016、使用 OS:unknown >


 Sub TEST()
    Dim Rng As Range
    Dim c
    c = "??"
    Set Rng = Range("F1", Range("F" & Rows.Count).End(xlUp).Offset(-1))
    Rng.Find(What:=c, LookIn:=xlValues, Lookat:=xlWhole, SearchDirection:=xlPrevious).Select
 End Sub
 こんな感じでどうでしょう。
(ろっくん) 2018/05/14(月) 09:32

こういうことかな?
転記元がどこで転記先がどこか説明ではわかりませんね^^;
落ち着いて整理された方がいいと思います。
そもそも、複数シートが操作の対象になるなら、
シートはちゃんと明示しないと、エクセル君もどのシートを操作するのか、
解らないと思います。

Sub test()

    Dim rngFrom As Range
    Dim rngTo As Range
    Dim c As Range

    Set c = Worksheets("Sheet3").Range("A1")
    With Worksheets("Sheet2").Columns("F")
        Set rngTo = .Range(.Cells(1), .Cells(.Cells.Count, 1).End(xlUp).Offset(-1))
        Set rngTo = rngFrom.Find(what:=c.Value, SearchDirection:=xlPrevious)
    End With
    With Worksheets("Sheet1")
        Set rngFrom = .Cells(.Rows.Count, 1).End(xlUp)
    End With
    rngFrom.EntireRow.Cut
    rngTo.Offset(1).EntireRow.Insert
End Sub
(まっつわん) 2018/05/14(月) 12:32

 まっつわんさん
 カット&ペーストの部分はできてるそうなのでいらないみたいですよ。
(ろっくん) 2018/05/14(月) 12:47

やりたいことがいまいちピンと来てないですけど、考え方を

下から上方向に探す
 ↓
(上から下に普通に探して)最後に見つかったものを取得(利用)する

ってやり方にしてみてはどうでしょうか?

ちなみにFindメソッドの部分でいくつかの引数が省略されているので、エラーにならないといいなぁなんて思いますが、余計なお世話ですかね・・・
(もこな2) 2018/05/14(月) 12:55


コメント返信:

[ 一覧(最新更新順) ]


YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki. Modified by kazu.