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