У меня есть проблема с выбранным для цикла случаем. Петля отлично работает в первый раз, вплоть до случая 18. Тем не менее, всякий раз, когда я пытаюсь перезапустить цикл, набрав «Y», он будет перезапускать цикл в обычном режиме, но появляется ошибка, когда я пытаюсь введите значение в поле сообщения.Ошибка выбора случая цикла
Я смущен, почему код работает в первый раз, но не второй.
Sub MessageBoxFunction()
Dim wbThis As Workbook
Dim wsThis As Worksheet
Dim msgBox As Variant
Dim txt1, txt2 As String
Dim rng1, rng2 As Range
Dim i, iA, iB As Integer
Set rng1 = Range("A1")
Set rng2 = Range("A1")
txt2 = rng1.Value
Do Until IsEmpty(rng1)
Set rng1 = rng1.Offset(1, 0)
Loop
For i = 1 To 18
Select Case i
Case 1
msgBox = InputBox("Do You Want To Input Information? (Y/N)")
txt1 = CStr(msgBox)
If InStr(1, msgBox, "N", 1) > 0 Then
i = 17
End If
Case 2 To 17
msgBox = InputBox(txt2)
txt1 = CStr(msgBox)
iA = i - 2
iB = i - 1
rng1.Offset(0, iA).Value = txt1
txt2 = rng2.Offset(0, iB).Value
Case 18
msgBox = InputBox("Do You Want To Input Additional Information (Y/N)")
txt1 = CStr(msgBox)
If InStr(1, msgBox, "Y", 1) > 0 Then
rng1 = rng1.Offset(1, 0)
txt2 = rng2.Value
i = 1
End If
End Select
Next i
End Sub
Неправильная практика использования встроенных имен функций в качестве имени переменной: 'MsgBox' является встроенной функцией! – PatricK
О да, вы правы. Никогда не замечал, что –