变量数组(不是变体)

时间:2014-03-26 17:36:27

标签: arrays vb.net vba variables

我正在与数组斗争。

根据RB按钮,我有一些需要隐藏到inmm的双变量。我不会遇到这些问题,但变量的数量很高,我试图将这些变量放入一个数组中,然后将它们分成多个或除以它们。但是当我尝试调用变量时,该值保持原始值。

我注意到数组的变量值不是变量本身。

有没有办法制作变量数组?我做过一些研究,但遗憾的是没有任何帮助。

以下是我正在做的事情的示例代码

Public Shared Variable1, Varible2 as Double
Public Shared VarriablesArray() as Double

Variable1 = TextBox1.Text
Variable2 = TextBox2.Text

VariablesArray = {Variable1, Variable2}

For i = 0 to VariablesArray.GetUpperBound(0)
VariablesArray(i) = VariablesArray(i)*25.4
Next

直到这里它起作用,但是当我MsgBox变量1时它与TextBox1.Text的值相同而不是数学后的值。

2 个答案:

答案 0 :(得分:1)

  

直到这里它才有效,但是当我使用MsgBox Variable1时它与TextBox1.Text的值相同,而不是数学后的值。

这是设计的。双值按值复制到数组中,因此当您对数组进行数学运算时,您不会更改原始变量,只会复制"复制"存储在数组中。

如果您希望将其重新导入Variable1,则需要将其复制回来:

Variable1 = VariablesArray(0)
Variable2 = VariablesArray(1)

答案 1 :(得分:0)

里德的解释是正确的。您可以做的一件事是创建一个新的ListArray并将修改后的元素放在那里。这是一个例子。我使用List,但您可以轻松使用Array或其他内容。

Dim variable1 As Double = 25.0
Dim variable2 As Double = 17.62
Dim variablesList As List(Of Double) = {variable1, variable2}.ToList
Dim newList As New List(Of Double)

For Each item As Double In variablesList
  item *= 25.4
  newList.Add(item)
Next

Console.WriteLine("variable1: " & variable1)
Console.WriteLine("variable2: " & variable2)
Console.WriteLine(Environment.NewLine & "variablesList:")

For Each item As Double In variablesList
  Console.WriteLine(item)
Next

Console.WriteLine(Environment.NewLine & "newList:")
For Each item As Double In newList
  Console.WriteLine(item)
Next

Console.ReadLine()