【发布时间】:2017-01-05 06:00:14
【问题描述】:
我目前面临的问题是,当我尝试执行脚本时,我的“for each”循环没有移动到我定义的范围内的每个单元格的后续单元格。数据的上下文如下:
我有 3 列数据。 L 列包含员工,K 列包含经理,J 列包含副总裁。包含经理和 VP 的 K & J 列未完全填充 - 因此,我想使用 VBA 脚本和索引匹配来填充所有单元格并将员工与经理与 VP 匹配。
我创建了一个参考表,其中我已将所有员工填充到经理再到董事,并将此表命名为“表 4”。然后,我使用下面的 VBA 代码尝试遍历 K 列中的每个单元格以填充管理器:
Sub FillVPs()
Dim FillRng As Range, FillRng1 As Range, cell As Range
Set FillRng = Range("J2:J2000")
Set FillRng1 = Range("K2:K2000")
For Each cell In FillRng1
If cell.Value = "" Then
ActiveCell.Formula = _
"=INDEX(Table4[[#All],[MGRS]], MATCH(L583,Table4[[#All],[EMPS]],0))"
End If
Next cell
End Sub
我觉得索引匹配公式肯定有问题,因为匹配单元格“L583”在每次循环运行时都不会移动到下一个单元格;但是,我不知道如何解决它。我也不知道还可能缺少什么。代码当前正在执行,但它停留在一个单元格上。
非常感谢任何帮助,如有必要,我会确保澄清。提前谢谢你。
【问题讨论】:
-
您需要更好地定义您的问题。首先,要检查您声称循环没有前进,请在循环内的第一个
If添加断点并检查cell的值(或简单地使用消息窗口将其地址显示为 @987654324 @. 其次,您声称L583没有改变。如果您使用文字值,为什么要改变它?