vba计数器,从每个循环的不同单元格中获取值

vba计数器,从每个循环的不同单元格中获取值,vba,Vba,感谢那些提供帮助的人,我自己解决了这个问题 我有一个依赖于计数器的if语句,我从单元格“B3”中获取计数器的值,代码可以正常工作。 然而,每次我在程序中循环时,我都需要计数器从不同的单元格中获取它的值。 例如,循环1从“B3”读取值 循环2从“C3”读取值 下一个“D3”等横穿板材 继续,直到它到达一个空的牢房 我把dim c作为整数 对于c=2到26,我将进入第26列 但我不知道如何让它在每次循环开始时递增。有人能帮忙吗?如果这有助于理解问题,我可以发布我目前使用的完整代码 Public Su

感谢那些提供帮助的人,我自己解决了这个问题

我有一个依赖于计数器的if语句,我从单元格“B3”中获取计数器的值,代码可以正常工作。 然而,每次我在程序中循环时,我都需要计数器从不同的单元格中获取它的值。 例如,循环1从“B3”读取值 循环2从“C3”读取值 下一个“D3”等横穿板材 继续,直到它到达一个空的牢房 我把dim c作为整数 对于c=2到26,我将进入第26列 但我不知道如何让它在每次循环开始时递增。有人能帮忙吗?如果这有助于理解问题,我可以发布我目前使用的完整代码

Public Sub copyX()
Dim listofcells As Range
Dim currentname As String
Dim foundrow As Integer
Dim foundcolumn As Integer
Dim counter As Integer
Dim i As Integer
Dim c As Integer

For i = 2 To 26

    Sheets("Availability").Activate
    counter = Range("b3")
    Sheets("Availability").Range("a2").Select
    If Not Sheets("Availability").Cells(2, i) = "" Then
        Sheets("Availability").Range(Cells(2, i), Cells(2, i).End(xlDown)).Select
    Else
        GoTo skip:  'If the column has no data then skip to next column
    End If
    Set listofcells = Selection

    Sheets("allocation").Activate
    Range("a2").Select


    For Each singlecell In listofcells
            If counter > 0 Then
            If singlecell = "Available" Then
            foundcolumn = singlecell.Column 'record the column number where "Available" was found
            currentname = Sheets("availability").Range("A" & singlecell.Row) 'record the name of the person in the row where "Available" was found
            Set foundName = Sheets("allocation").Range("A:A").Find(What:=currentname, LookIn:=xlValues) 'find the persons name in "Allocation" sheet
            foundrow = foundName.Row
            Sheets("allocation").Cells(foundrow, foundcolumn) = "X" 'place yes in the same cell as it appeared in "Availability" sheet
            counter = counter - 1
            End If
        End If

    Next singlecell

skip:
Next i

End Sub
我已经想出了下面的代码,它确实通过单元格得到了它们的值,问题是我不能得到一个for next循环,在另一个for next循环中工作。 设置计数器范围=范围(“b3:Z3”) 对于计数器范围中的每个单元格
下一个单元格

尝试使用此概念

将代码修改为

Dim k as Integer

k=3;

counter =Range(Cells(3, k), Cells(3, k)).Value    // through this you will get dynamic counter value like B3,D3,E3.,,,,

if(counter !="")
{
//execute some code
}
k=k+1;

你能分享你的代码吗?你好,我已经添加了我的代码供你查看哪一行你想要获得动态值对不起,没有,因为我不明白它在做什么,或者我在哪里添加到我的代码中。很抱歉,我对VBA非常陌生,我在这里的学习曲线非常陡峭,您将计数器范围硬编码为(“b3”)。所以你们不会得到(“c3,d3,…”),所以改变我提到的计数器代码,并通过循环增加它。。