If textbox.value "" Then
X1 = textbox.Value
For i = 1 To 100
X2 = ws.Cells(i, 1).Value
If X1 = X2 Then
Holder = i
Exit For
End If
If X1 <= X2 Then
Holder = i
Exit For
End If
Next i
End If
上記のようなコードがあります。textboxというテキストボックスの中の文字列とExcelのセルの文字列を比較して処理を行いたいと思っています。X1=X2、もしくはX1 <=X2の時ループを抜けます。
これに追加して、X1=X2、X1<=X2以外にこれにあてはまらない文字列がある場合は処理を中止してexit subをしたいと思っています。
わからないのは、ExcelのセルのA列から100行を検索して、その結果上記の二つの条件を満たさない場合は"データがありません"でexit subをしたいと思っています。どこにexit subで抜けるようなコードを追加すればよいでしょうか?
No.1ベストアンサー
- 回答日時:
すべて検査した上でメッセージを表示したいのであれば
If textbox.value<> "" Then
X1 = textbox.Value
' Holderの初期設定
Holder = 0
For i = 1 To 100
X2 = ws.Cells(i, 1).Value
If X1 = X2 Then
Holder = i
Exit For
End If
If X1 <= X2 Then
Holder = i
Exit For
End If
Next i
' ここで Holderをチェック
if Holder = 0 then
MsgBox "該当するデータがありません"
Exit Sub
end if
End If
といった具合でしょう
No.2
- 回答日時:
「これにあてはまらない文字列がある場合は処理を中止してexit subをしたい」と、言うのが、
・条件に当てはまる文字列が1つもない場合
・条件に当てはまらない文字列が1つでもある場合
どちらなのか微妙な書き方ですが、前者と判断して回答します。
頭の方の「X1 = textbox.Value」と、「For i = 1 To 100」の間に↓を入れて検索前に確認しては如何でしょう?
If Application.WorksheetFunction.CountIf(Range("A1:A100"), ">=" & X1) = 0 Then
MsgBox ("データがありません")
Exit Sub
End If
後者の場合、IF文中の「=0」を「<100」に……
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Visual Basic(VBA) VBA Userformで一部別シートに転記がしたいのですが 2 2023/05/24 13:08
- Visual Basic(VBA) VBAで質問ですが、皆さんはどの様に導き出しているのでしょうか? 6 2022/05/03 21:53
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Excel(エクセル) なぜExit Subがあるのかわかりません 4 2023/02/19 12:34
- Excel(エクセル) VBAについて 3 2022/06/19 18:19
- Visual Basic(VBA) 数字が「0」の列を削除するため、下記のコードを実行しましたが、コンパイルエラーSubまたはFunct 3 2022/12/04 00:00
- Visual Basic(VBA) 稀に1円合いません? Sheet1から金額と個数を貼り付ける下記コードで、金額を切り上げるコードを何 3 2022/09/05 15:11
- Visual Basic(VBA) 前回ご教授いただいたコードに覚えたてのループ処理で品名りんごAから順に20回for nextでループ 7 2023/01/13 22:01
- Visual Basic(VBA) excel VBA if文について 3 2022/03/27 17:42
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
VBAでの Replace関数で、ワイル...
-
文字列からタブコードを取り除...
-
【Excel VBA】複数ある特定の文...
-
Left関数とRight関数を合わせた...
-
[C言語]fputsとfprintfの違い
-
VBの「As String * 128」とは?
-
VBscriptからバッチに変数を渡...
-
MS SQLServer のSQLで文字列の...
-
Excelはなんで先頭の0を消すん...
-
Excelで3E8を3.00E+8にしない方...
-
VBA2005 16進を2桁で表示したい。
-
A B C D E の五文字のすべてを...
-
ORCLEでの小数の表示方法の変更...
-
エクセルで文字列の最大値を抽...
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
sedなどで、特定の文字列の後の...
-
Excelで指数表現しないようにす...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
エクセルでアルファベットか数...
-
EXCELで=より左の文字を一括で...
-
文字列からタブコードを取り除...
-
Excelで3E8を3.00E+8にしない方...
-
VBAでの Replace関数で、ワイル...
-
Excelで指数表現しないようにす...
-
[C言語]fputsとfprintfの違い
-
エクセルで文字列をtxtファイル...
-
同一セル内に関数と文字列を同...
-
エクセルで文字列の最大値を抽...
-
Excelはなんで先頭の0を消すん...
-
MS SQLServer のSQLで文字列の...
-
エクセル 数値データを桁をそ...
-
Left関数とRight関数を合わせた...
-
VBA2005 16進を2桁で表示したい。
-
VBの「As String * 128」とは?
-
Msgboxの×が押されたとき
-
sedなどで、特定の文字列の後の...
-
【Excel VBA】複数ある特定の文...
-
OnTime 使用時のプロシージャへ...
おすすめ情報