質問

テーブルから選択した月を絞り込む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
.

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top