我想在vb6中创建一个动态变量

时间:2011-12-05 10:51:20

标签: dynamic vb6

我的代码 -

For i= 1 to 10
str & i = InputBox("Enter a number")
Next i

问题在于它不会创建变量并突出显示“&”标志。请帮忙。 附:我不想使用数组。

修改(其中一条评论更新了要求):

我不能使用数组,因为它用于学校项目并且我不被允许,并且用户可以输入他想要的数量,所以..?

4 个答案:

答案 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循环,而是DoWhile循环,当用户完成时(当他们将输入框留空或输入“完成”或其他内容。

但是,您可能不需要一次存储所有数字。只需将数字输入到单个变量中,在循环体内执行您需要处理的任何处理(例如,将其添加到总计中),然后在循环的下一次迭代中重复使用相同的变量名。

如果你真的需要一次性存储它们,是的,你需要一个数组(或者一个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