在VBA中使用计数器

时间:2017-04-18 09:53:55

标签: excel-vba counter vba excel

我正在制作一个循环来从组合形式中获取数据。

Analysis_ 1是第一个变量 Analysis_1_ComboB是屏幕上的第一个ComboBox

Analysis_1 = Me.Analysis_1_ComboB.Column(0)
Analysis_2 = Me.Analysis_2_ComboB.Column(0)
Analysis_3 = Me.Analysis_3_ComboB.Column(0)

等等

作为单行,它正在工作我想要使用循环

for counter = 1 to 9
    Analysis_&Counter = Me.Analysis_&Counter&_ComboB.Column(0)
next counter

不幸的是,这不起作用,谁可以帮助我在这里?

1 个答案:

答案 0 :(得分:2)

不幸的是,您无法动态指定变量名称。 (您通常可以找到一种动态访问各种对象的方法,尤其是当它们可以作为“名称”索引访问时。)

实现你想要做的事情的最好方法是使你的变量成为一个数组,例如:

Dim Analysis(1 To 9) As String
For counter = 1 To 9
    Analysis(counter) = Me.Controls("Analysis_" & counter & "_ComboB").Column(0)
Next counter
MsgBox "Value from Analysis_5_ComboB is " & Analysis(5)

(此代码假定您的ComboBox在UserForm上,因此可以通过表单的Controls集合动态访问。)