【问题标题】:Counting input on inputbox Visual Basic计数输入框 Visual Basic 上的输入
【发布时间】:2014-01-13 08:13:25
【问题描述】:

好吧,我对编程和 Visual Basic 还是很陌生。
我有这些代码,我需要我的程序做的是计算用户输入的数量。不同的输入,所以我让输入框循环,一旦用户输入值“0”,循环就会停止,并且会显示一个消息框,显示输入框循环的次数(从而显示输入的数据数量)

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)

所以它运行但它不会循环,所以消息框总是显示 1

【问题讨论】:

  • 你的问题是什么
  • 你的代码有什么问题?
  • 它会运行,但不会循环,所以消息框总是显示 2。

标签: vba for-loop inputbox


【解决方案1】:

显示输入框循环的次数

您的循环不正确。这是你正在尝试的吗?

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 StringType:=1 更改为 Type:=2

来自 cmets 的跟进

要显示非零输入的数量(您的问题未指定。它表示循环数),将上述代码更改为

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 是输入框的输入吗?这是用户说的a messagebox would show up showing the number of times the inputbox looped
  • 他想显示非零输入的数量。你的代码会差一个……很确定……
  • 也许你是对的,但他在哪里说show the number of non-zero inputs。他说number of times the inputbox looped
  • 是的,差一,如果我输入了四个值,它计数为五。不过谢谢!
【解决方案2】:

尝试以下方法:

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)

【讨论】:

  • 你是对的 - 删除了错误的“next i”。乐于助人。
  • @user3189380,如果这回答了您的问题,您应该将其标记为这样,以使您和社区受益。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-20
  • 2013-06-04
  • 1970-01-01
相关资源
最近更新 更多