2014-01-13 3 views
0

Хорошо, поэтому я новичок в программировании и Visual Basic.
У меня эти коды, и мне нужна моя программа, чтобы подсчитать количество ввода пользователя. Различные входы, поэтому у меня есть цикл ввода-ввода, и как только пользователь вводит значение «0», когда цикл останавливается, и будет отображаться сообщение с указанием количества циклов ввода данных (таким образом, число введенных данных)Подсчет ввода на ящике ввода Visual Basic

Dim inputNumber As Integer 
Dim i As Integer 

For i = 0 To inputNumber 
    inputNumber = InputBox("Please enter a value") 
    Do Until inputNumber = "0" 
     inputNumber = i 
     i = i + 1 
    Loop 
Next i 
MsgBox(i) 

так он работает, но это не будет повторяться и поэтому MessageBox всегда показывает 1

+0

, что ваш вопрос –

+0

А в чем проблема с вашим кодом? –

+0

Ну, он работает, но он не будет зацикливаться, поэтому поле сообщения всегда говорит 2. – VisualStudio2012

ответ

1

показать, показывая количество раз InputBox петельные

у вас есть цикл неправильно. Это то, что вы пытаетесь?

Sub Sample() 
    Dim inputNumber As Long 
    Dim i As Long 

    inputNumber = 1 

    Do Until inputNumber = 0 
     inputNumber = Application.InputBox("Please enter a value", Type:=1) 
     i = i + 1 
    Loop 
    MsgBox i 
End Sub 

Если вы планируете принять Text, а также для inputNumber, то вам придется изменить Dim inputNumber As Long к Dim inputNumber As String и Type:=1 к Type:=2

Followup от комментариев

Чтобы показать количество не -zero (, который не задан в вашем вопросе. Он говорит количество циклов), Измените приведенный выше код на

Sub Sample() 
    Dim inputNumber As Long 
    Dim i As Long 

    inputNumber = 1 

    Do Until inputNumber = 0 
     inputNumber = Application.InputBox("Please enter a value", Type:=1) 
     If inputNumber <> 0 Then i = i + 1 
    Loop 
    MsgBox i 
End Sub 
+0

Код неправильный, значение i будет отключено на 1, если они в первый раз вводят значение 0. – robnick

+0

Не так ли? '0' - вход в поле ввода? Это то, что пользователь сказал, что «появится окно сообщений, показывающее количество циклов ввода данных» –

+0

Он хочет показать количество ненулевых входов. Вы код будет отключен одним ... довольно уверенно ... – robnick

0

Попробуйте следующее:

Dim inputNumber as Integer = 0 
Dim i as Integer = -1 
do 
    inputNumber = InputBox("Please enter a value") 
    i = i + 1 
Loop while inputNumber <> 0 
MsgBox("Number of inputs: " & i) 
+0

Это прекрасно работает. Благодаря! – VisualStudio2012

+0

Ну, кроме следующего, который я удалил, но спасибо большое! – VisualStudio2012

+0

Вы правы - удалили этот ошибочный «следующий i». Рад был помочь. – robnick

Смежные вопросы