Loops Excel VBA-Do While Loop-移动到下一行
我正在尝试根据不同的单元格值向报表输出添加注释 我选择了Do While…循环,因为一旦列B中的Unq标识符不再出现在连续的行中,而不是在整个工作表中继续,条件就需要停止。Unq标识符可以在1-50行中找到。测试Col K值,如果发现Col N值,则将其与原始单元格(LastCell)进行比较。 这似乎是可行的,但是,我无法使循环移动到下一行。 我使用的是rng=rng+1,但它没有向下移动一行,而是将1添加到Unq标识符中,即:123变为124 我该如何下排?或者,有没有更好的方法来解决这个问题 仅供参考,我正在修改其他人的代码,而不是从头开始Loops Excel VBA-Do While Loop-移动到下一行,loops,do-while,Loops,Do While,我正在尝试根据不同的单元格值向报表输出添加注释 我选择了Do While…循环,因为一旦列B中的Unq标识符不再出现在连续的行中,而不是在整个工作表中继续,条件就需要停止。Unq标识符可以在1-50行中找到。测试Col K值,如果发现Col N值,则将其与原始单元格(LastCell)进行比较。 这似乎是可行的,但是,我无法使循环移动到下一行。 我使用的是rng=rng+1,但它没有向下移动一行,而是将1添加到Unq标识符中,即:123变为124 我该如何下排?或者,有没有更好的方法来解决这个问
Sub play()
Dim Unq As Long
Dim Cell As Range
Dim LastCell As Range
Dim rng As Range
For Each Cell In Range("U2:U" & ActiveSheet.UsedRange.Rows.Count)
If Int(Range("B" & Cell.Row).Value) <> Unq And Len(Range("A" & Cell.Row).Value) > 0 Then
Unq = Int(Range("B" & Cell.Row).Value)
Cell.Value = Cell.Offset(0, -6).Value - Cell.Offset(0, -5).Value
If Cell.Offset(0, -15) = "REG" Then
GoTo Skip1
Skip1:
'Bonus identified - No requirement to investigate
If Cell.Offset(0, -2).Value <> 0 Or Cell.Offset(0, -1).Value <> 0 Then
Set LastCell = Cell
Set rng = Cell.Offset(0, -19)
Do While rng.Value = Unq
If rng.Offset(0, 9).Value = "BONUS" And rng.Offset(0, 12).Value = LastCell.Value Then
LastCell.Activate
Cell.Offset(0, 1).Value = "Bonus Paid"
ElseIf rng.Offset(0, 9).Value = "BONUS" And rng.Offset(0, 12).Value <> LastCell.Value Then
LastCell.Activate
Cell.Offset(0, 1).Value = "Retention Bonus Paid"
Cell.Offset(0, 2).Value = "Variation managed by macro"
Cell.Offset(0, 3).Value = "Variation managed by macro"
Cell.Offset(0, 4).Value = Date
Cell.Offset(0, 5).Value = "Yes"
Else:
rng = rng + 1
End If
Loop
子播放()
如长
暗淡单元格作为范围
将最后一个单元格设置为范围
变暗rng As范围
对于范围内的每个单元格(“U2:U”&ActiveSheet.UsedRange.Rows.Count)
如果Int(Range(“B”)和Cell.Row.Value)Unq和Len(Range(“A”)和Cell.Row.Value)大于0,则
Unq=Int(范围(“B”和Cell.Row).Value)
Cell.Value=Cell.Offset(0,-6).Value-Cell.Offset(0,-5).Value
如果单元格偏移量(0,-15)=“REG”,则
跳台滑雪1
技巧1:
“已确定奖金-无需调查
如果单元格偏移量(0,-2).Value为0或单元格偏移量(0,-1).Value为0,则
设置LastCell=单元格
设置rng=单元偏移量(0,-19)
当rng.Value=Unq时执行
如果rng.Offset(0,9).Value=“BONUS”和rng.Offset(0,12).Value=LastCell.Value,则
最后一个细胞,激活
单元格偏移量(0,1).Value=“已支付奖金”
ElseIf rng.Offset(0,9).Value=“BONUS”和rng.Offset(0,12).值LastCell.Value然后
最后一个细胞,激活
单元格偏移量(0,1).Value=“支付的保留奖金”
Cell.Offset(0,2).Value=“宏管理的变化”
Cell.Offset(0,3).Value=“宏管理的变化”
单元格偏移量(0,4)。值=日期
单元格偏移量(0,5).Value=“是”
其他:
rng=rng+1
如果结束
环
昨天显然不是我最开心的日子
将代码修改为Do,直到rng.value Unq或Cell.Offset(0,1“
改变
Else:
rng = rng + 1
到
工作是一种享受
Else:
Set rng = rng.offset(1, 0)