アプリ版:「スタンプのみでお礼する」機能のリリースについて

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で抜けるようなコードを追加すればよいでしょうか?

A 回答 (2件)

すべて検査した上でメッセージを表示したいのであれば



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
といった具合でしょう
    • good
    • 0

「これにあてはまらない文字列がある場合は処理を中止して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」に……
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!