2016-10-14 8 views
0

特定の単語などを含む行を特定する必要があります。excelマクロを見つける

次のように最新の行番号の式は次のとおりです。

Son1 = Range(KirilimKolonu & ":" & KirilimKolonu) _ 
      .Find(what:="1", _ 
       after:=Range(KirilimKolonu & "1"), _ 
       searchdirection:=xlPrevious).Row 

何か代わりに、ループのより良い方法がなければならない

x =1 

do while x < 785 

if range(KirilimKolonu & x).value = 1 then exit loop else 

x = x + 1 

Loop 

のように...

+3

'' After''オプションを 'Son1 + 1'行に設定して別の' .Find'を実行したいと思うようですね? – arcadeprecinct

+0

@arcadeprecinct行785より前であるようなオプションで最新の行を探したい...(各条件の行番号が変わる) –

+0

特定の行の前の最後の行または後の最初の行を探したいですか?ある行?あなたの質問とコメントは互いに矛盾しています。あなたが探したいものをより詳細に記述できますか?たぶん小さな例があります。 (あなたの質問にそれを編集してください) – arcadeprecinct

答えて

1

だろう最も簡単な方法後方を検索して検索する範囲を変更することです。あなたが途中でどこかに検索(Afterオプション)を開始するセルを指定した場合、検索がラップアラウンドし、あなたのヒットは、実際の出発細胞(というよりもまったくヒット)

Dim foundCell As Range 
Dim searchRange As Range 
Dim Son1 As Long 

Set searchRange = Range("A1:A" & 785) 'your variable goes here 

Set foundCell = searchRange.Find(what:="1", searchdirection:=xlPrevious) 'specify other options if you must 

'you need to check if something was found or .Row will cause an error. 
If Not foundCell Is Nothing Then 
    Son1 = foundCell.Row 
Else 
    'do what you need to if there is no match 
End If 

More options後かもしれません

+0

ご協力いただきありがとうございます。私は最初から始まるxlNextを使用... '' ' –

+0

設定探索範囲=レンジ(KirilimKolonu&SubB3& ":" &KirilimKolonu&SubB4) 設定foundCell = searchRange.Find(何:= "4"、 searchdirection:= xlNext) ないfoundCellがSon5> SubB5場合Son4 = foundCell.Row その後 何もない場合は次に レンジ(Kolon2&SubB5).Formula = "= SUBTOTAL(9、" &Kolon2&SubB5 + 1 &Kolon2&SubB5 + 1& ":"&Kolon2&Sub55&1: "&": "&Kolon2&Son5&") " Else Range(Kolon2&SubB5).Formula =" = SUBTOTAL n2&LastRow& ")" 終了の場合 終了場合 ' –

+0

長いコードを投稿することは決して良いことではありません。別の問題がありますか?私のコードはあなたを助けましたか?なぜそうでないのであれば? – arcadeprecinct

関連する問題