VBA 객체는 루프에서 할 때 오류가 필요합니다
-
21-12-2019 - |
문제
테이블에서 선택한 달을 필터링 할 VBA 코드의 평화를 작성하려고합니다.사용자가 그 달에 대한 답변을주지 않으면 답변이 주어질 때까지 질문을 계속해서 루프를 원합니다.OPTION 01, 02, 03, 04, 05, 06, 07, 08, 05, 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"
.
i.e.=
를 사용하고 Is
가 아님을 사용하십시오.
또한 문자열을 "null"에 대해 비교하려는 경우 다음을 수행해야합니다.
Do While bdaymonth = vbNullString
. 제휴하지 않습니다 StackOverflow