我的代码 -
For i= 1 to 10
str & i = InputBox("Enter a number")
Next i
问题在于它不会创建变量并突出显示“&”标志。请帮忙。 附:我不想使用数组。
修改(其中一条评论更新了要求):
我不能使用数组,因为它用于学校项目并且我不被允许,并且用户可以输入他想要的数量,所以..?
答案 0 :(得分:4)
正如Marco所说,你不能拥有变量。
听起来你需要一个数组:
dim inputs(1 To 10) as Integer
For i= 1 to 10
inputs(i) = InputBox("Enter a number")
Next i
更新:回答未知输入数量的要求,以及缺少数组:
您可以使用集合,因为这将根据您的需要采用新输入:
'Create a collection and a temp variable
Dim strs As New Collection
Dim str As String
'Loop until the input is empty
Do
str = InputBox("Enter a number")
If str <> "" Then strs.Add (str)
Loop Until str = ""
'Then later you can do
Dim val As String
For Each val In strs
'Do something with val
Next
答案 1 :(得分:1)
您说用户可以输入任意数量的号码。也许你不想要For
循环,而是Do
或While
循环,当用户完成时(当他们将输入框留空或输入“完成”或其他内容。
但是,您可能不需要一次存储所有数字。只需将数字输入到单个变量中,在循环体内执行您需要处理的任何处理(例如,将其添加到总计中),然后在循环的下一次迭代中重复使用相同的变量名。
如果你真的需要一次性存储它们,是的,你需要一个数组(或者一个Dictionary或Collection对象,但它们仍然像数组一样)。
答案 2 :(得分:0)
我想在VB6中创建一个动态变量
这就是你想要的想法,但它肯定不是你需要的。
您可以使用数组:
Dim str(10) As String
Dim i As Integer
For i= 1 to UBound(str)
str(i) = InputBox("Enter a number")
Next i
如果没有上限,您可以使用集合。
Dim str As New Collection
Do
str.Add InputBox("Enter a number"), CStr(str.Count)
Loop Until str(str.Count) = ""
str.Remove str.Count
答案 3 :(得分:0)
我认为海报试图做的事情被误读了。他们想要使用单个变量,但继续使用其他用户输入更新它。一个VB字符串可以很好地为此工作,并附加一个vbCrLf将分裂字符串以轻松分离值。这与Tomalak的样本非常相似。
Dim strUserInput As String
Do
strUserInput = InputBox("Enter a number")
Text1.Text = Text1.Text & vbCrLf & strUserInput 'I am displaying the user input but another string can be used here also
Loop While Len(strUserInput) > 0