【发布时间】:2017-10-03 08:36:37
【问题描述】:
全部,
我有下面的代码,它遍历列和行以查看IF 声明是真的。它似乎正在运行整个代码,带回重复的行。一旦找到值,我希望此代码转到下一行。
我不确定如何调整此代码,但我想问题出在每个循环的一般情况上,我已经设置了有关如何解决此问题的任何建议,将不胜感激。
Dim LR As Long
LR = Workbooks(trackerName).Sheets("Results").Range("A1048576").End(xlUp).Row
Dim LRC As Long
LRC = Workbooks(trackerName).Sheets("Columnsforbox").Range("A1048576").End(xlUp).Row + 1
For Each c In Workbooks(trackerName).Sheets("results").Range("A4:K" & LR)
If c.Value = UserName Or c.Value = UserId Then
Worksheets("Columnsforbox").Range("A" & LRC) = Worksheets("Results").Range("E" & c.Row)
Worksheets("Columnsforbox").Range("B" & LRC) = Worksheets("Results").Range("D" & c.Row)
Worksheets("Columnsforbox").Range("C" & LRC) = Worksheets("Results").Range("A" & c.Row)
Worksheets("Columnsforbox").Range("D" & LRC) = Worksheets("Results").Range("B" & c.Row)
Worksheets("Columnsforbox").Range("E" & LRC) = Worksheets("Results").Range("C" & c.Row)
LRC = LRC + 1
End If
Next c
【问题讨论】:
-
您是否只想在
results工作表的特定列中查找UserName或UserId? -
如果在指定的列中找到用户名或用户ID,我希望它执行代码然后转到下一行。例如,目前如果在 A、B、C 列中找到用户名或用户 ID,它将执行代码 3 次我希望代码只执行一次。
-
@SeanBailey 您不能将
c设置为For Each循环中的其他单元格(当然可以,但它会在Next之后返回初始单元格的下一个单元格)。我可能会推荐循环二维数组,您可以更改For To循环中的值。