VBAオブジェクトはループ中にDOのエラーが必要です
-
21-12-2019 - |
質問
テーブルから選択した月を絞り込むVBAコードの安心を記述しようとしています。ユーザーが月の質問に対する答えを与えない場合は、答えが与えられるまで質問をする必要がある場所にループが必要です。オプション01,02,03,04,05,06,07,08,09,10,11,12だけであっても好ましいが、私はVBAの初心者です。
私はこれまでに次のコードを書きました:
Sub BE_NL_AddressBirthdaySplit()
'
' BE_NL_AddressBirthdaySplit Macro
'
' Keyboard Shortcut: Ctrl+w
'
Dim bdaymonth As String
bdaymonth = "0"
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=19, Criteria1:= _
"BE-PM Benelux BVBA"
bdaymonth = InputBox("What Month would you like to filter?", "Month of Birth")
Do While bdaymonth Is "0"
If bdaymonth = "" Then
result = MsgBox("You didn't specify the month", vbCritical, "No Month")
Else: ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=16, Criteria1 _
:=bdaymonth
End If
Loop
End Sub
.
しかし、
の「タイプの不一致」エラーを与え続けていますDo While bdaymonth Is "0"
.
私はいくつかの方法を試してみました。これを試してみると、「オブジェクト必須エラー」が表示されます。
Sub BE_NL_AddressBirthdaySplit()
'
' BE_NL_AddressBirthdaySplit Macro
'
' Keyboard Shortcut: Ctrl+w
'
Dim bdaymonth As Variant
ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=19, Criteria1:= _
"BE-PM Benelux BVBA"
bdaymonth = InputBox("What Month would you like to filter?", "Month of Birth")
Do While bdaymonth Is Null
If bdaymonth = "" Then
result = MsgBox("You didn't specify the month", vbCritical, "No Month")
Else: ActiveSheet.ListObjects("Table1").Range.AutoFilter Field:=16, Criteria1 _
:=bdaymonth
End If
Loop
End Sub
.
私はVBAプログラミングにとってきれいに新しい、あなたの何人かは私が間違った場所へのポインタを私に与えてもらえますか?
解決
文字列を誤って比較します。あなたはこれをするべきです:
Do While bdaymonth = "0"
.
すき。=
を使用して、Is
を使用します。
また、文字列を "null"と比較する場合は、これを行う必要があります。
Do While bdaymonth = vbNullString
. 所属していません StackOverflow