我有一个数据集,其中包括个人的得分,但报告中缺少团队经理的分配。我有一个单独的表,其中包含团队经理的分配。棘手的部分是人们更换经理,而我必须将分数与经理联系起来,然后只有新的数据才会传输给新的经理。
我的想法是,我有一个查询选项卡,我将数据粘贴到其中。有一个列总是为每条记录显示"Item“,并不用于我的目的。所以我想如果我做了一个控制按钮,在if语句中运行一个VLOOKUP来拉取团队经理的分配,如果记录在指定的列中包含"Item“,那么VLOOKUP就会运行并用经理的名字替换工作"Item”。这样,如果有人更换了经理,它将保留与特定经理相关的分数。
问题:似乎宏在第一行运行正确,但是,它只是在整个表中重复同一个经理的名字,其中它表示"Item“。如何才能让它提取每一行的VLOOKUP数据并填充到正确的团队管理器中。
代码:
Sub AssignTeams()
If Sheets("CallScrubQuery").Range("G2") = "Item" Then
Range("G2:G" & Range("A" & Rows.Count).End(xlUp).Row).Formula = Application.WorksheetFunction.VLookup(Sheets("CallScrubQuery").Range("A2"), Sheets("TeamAssignment").Range("$A$2:$B$200"), 2, False)
End If
End Sub发布于 2018-12-09 14:39:26
如果您总是在A2中查找值,为什么期望结果会有所不同呢?
您只需在第一个单元格中输入公式,然后使用另一个VBA语句将公式复制下来。向下复制时,"A2“将调整为当前行。
或者编写代码来更改"A2“以引用当前行。
第一种方法可能更简单。提示:使用宏录制器来帮助您找出语法。
https://stackoverflow.com/questions/53689549
复制相似问题