VBA:使用链接的变量重复循环

时间:2018-10-23 08:33:14

标签: excel vba excel-vba

我有三组变量a1-a5, b1-b5, c1-c5(每组5个变量)。

a1b1c1是链接的,需要在循环中一起使用。我正在尝试做的事情类似

Do While
' Loop using variables a1,b1,c1
Loop

然后我想用a2,b2,c2, etc.重复此循环

因此,在循环中,我正在其他位置指定的范围内搜索字符串a1的位置-我们将其称为Pos
然后,我将a2(一个数字)添加到Pos中。
a3是循环中其他地方使用的另一个数字。 a2a3的变化取决于a1中的字符串,因此必须一起使用它们。

我对VBA还是陌生的,所以越简单越好!

谢谢

3 个答案:

答案 0 :(得分:0)

@Stefan Fidlschuster我不完全理解您的问题,但我相信这会有所帮助:

Sub test()

Dim i As Long
Dim Address As Range
Dim A1Value As String
Dim Pos As Range
Dim A2Addition As Integer

With wsTest

    Set Pos = .Columns("F:F") '<= Search area (In the example is column F)

    For i = 1 To 5
         A1Value = .Range("A" & i).Value '<= Value in cell A1

         Set Address = Pos.Find(What:=A1Value, LookAt:=xlWhole)

         A2Addition = Address.Row + .Range("B" & i).Value

    Next i

End With

End Sub

答案 1 :(得分:0)

如果要将变量分组在一起并循环,则可以使用Type

Type abc
    a As String
    b As Long
    c As Long
End Type

Sub test()
    Dim abcs(1 To 5) As abc, abci As abc
    Dim i As Long
    For i = 1 To 5
        abci = abc(i)
        ' Use abci.a, abci.b, abci.c here
    Next i
End Sub

但是,这很难理解您要执行的操作,您应该发布一些示例数据。

答案 2 :(得分:0)

使用数组

Dim a(1 To 5) As Long 'define your desired type if not Long
Dim b(1 To 5) As Long 
Dim c(1 To 5) As Long 

Do While x
    a(1) = 5
    b(1) = 10
    '…
Loop


Dim i As Long
For i = 1 To 5
    a(i) = i * 2
    b(i) = i * 3
Next i