[ 初めての方へ | 一覧(最新更新順) | 全文検索 | 過去ログ ]
『初めて値がXXを超えた行を返す(VBA)』(たろり)
初心者です。
VBAで、初めて値がXXを下回った(超えた)行を返したいと思っています。
データは以下で、例えばこの中で、
上から順に判定して、初めて-300を下回った行を取得したい考えです。
このあたり(https://oshiete.goo.ne.jp/qa/5229028.html)を参考にしながら、
indexやminやらを組合せてみましたが、どうもうまくいきませんでした。
何か良い方法がありましたら、ご教示いただければと思います。
恐れ入りますが、アドバイスのほど、どうぞよろしくお願いいたします。
A 1 0 2 -22 3 0 4 0 5 0 6 -520 7 -800 8 -204 9 -320 10 -2
< 使用 Excel:Excel2016、使用 OS:Windows7 >
(マナ) 2018/06/01(金) 18:46
(マナ) 2018/06/01(金) 20:09
参考にさせて頂いて、以下のような形で、書いてみたのですが、
型が一致しませんと、エラーが返ってきてしまいました。
変数型の問題でしょうか、少しさわってみたのですが解決できず
続いてご教示頂けますと幸いです。
どうぞよろしくお願いいたします。
Dim i As Long
Dim RowNum As Long
RowNum = Cells(Rows.Count, 1).End(xlUp).Row
i = Application.WorksheetFunction.Match(1, Application.WorksheetFunction.Index((Range("A2:A" & RowNum) < -300) * 1, 0), 0)
(たろり) 2018/06/04(月) 15:45
以下ではどうだろうか? Sub a() Dim i As Long i = 1 Do Until Range("A1").Offset(i - 1, 0).Value < -500 i = i + 1 Loop MsgBox i End Sub
(ねむねむ) 2018/06/04(月) 16:37
難しく考えないで、上から順番に判定していけばよいです。
わたしの場合、Do〜Loopは苦手なので
できるだけFor〜Nextを使います。
Sub test() Dim i As Long Dim RowNum As Long
RowNum = Cells(Rows.Count, 1).End(xlUp).Row
For i = 1 To RowNum If Cells(i, 1).Value < ー300 Then Exit For Next
If i > RowNum Then MsgBox "なし" Else MsgBox i End If
End Sub
(マナ) 2018/06/04(月) 19:38
[ 一覧(最新更新順) ]
YukiWiki 1.6.7 Copyright (C) 2000,2001 by Hiroshi Yuki.
Modified by kazu.