如何在VBA宏中实现Vlookup查找值随活动行动态变化?
解决Vlookup查找值随活动行动态变化的问题
你的问题出在固定引用了M3单元格,导致无论活动行怎么下移,Vlookup始终读取M3的值。要让查找值随活动行动态变化,只需要把固定的Range("M3")替换为对应活动行的M列单元格引用即可。
因为你其他邮件数据用ActiveCell.Offset获取活动行数据,所以可以直接用ActiveCell.Row获取当前活动行的行号,然后拼接成M列的单元格引用:
Strprogemail = Application.WorksheetFunction.Vlookup(Range("M" & ActiveCell.Row), Range("UG!A:B"), 2, False)
如果担心操作时ActiveCell不在目标数据行的任意列(比如误点了其他列),可以用更稳妥的方式定位当前活动行的M列单元格:
' 方式1:用Cells指定行和列 Strprogemail = Application.WorksheetFunction.Vlookup(Cells(ActiveCell.Row, "M"), Range("UG!A:B"), 2, False) ' 方式2:先选中活动行的整行,再取M列 Strprogemail = Application.WorksheetFunction.Vlookup(ActiveCell.EntireRow.Columns("M"), Range("UG!A:B"), 2, False)
这两种写法都能确保Vlookup的查找值始终是当前活动行的M列内容,和其他邮件数据保持同步。
内容的提问来源于stack exchange,提问作者Daniel McConaghy
相关产品推荐
相关产品推荐

