【问题标题】:assigning formula to variable range of rows VBA将公式分配给可变行范围VBA
【发布时间】:2016-11-15 00:46:17
【问题描述】:

我正在尝试创建一个宏,该宏可以动态地对具有不断增加的行数的工作表执行 vlookup;我想编写代码,以便它运行从 Q2 到 col 中最后填充的行的 vlookup。 Q(不管是什么),到目前为止我已经想出了这个:

Range("Q2", Range("Q2").End(xlDown)).Value = "=VLOOKUP(A2,sheet2!A:BO,67,FALSE)"

..宏执行它需要做的所有事情并为每一行进行相应的更改,但在没有更多数据后它也会在列中无限运行。如果可能的话,我想知道是否有办法在一行代码中做到这一点。我对 VBA 有点陌生,找不到已经发布的答案来充分解决我的问题,因此我们将不胜感激。

【问题讨论】:

标签: vba excel macros vlookup


【解决方案1】:

这应该根据您提供的信息起作用。我猜您正在用公式替换现有值,否则行查找将返回您不想要的值。如果您想要另一列的最后一行,只需将Cells(Rows.Count, "Q").End(xlUp).Row 中的Q 更改为您想要的列。

Range("Q2:Q" & Cells(Rows.Count, "Q").End(xlUp).Row).Value = "=VLOOKUP(A2,sheet2!A:BO,67,FALSE)"

【讨论】:

  • 感谢您的回复!但是您提供的代码仅填写单元格 Q1 和 Q2。不,我正在获取新列的内容,因此 vlookup 将填充空白单元格。你知道如何从 Q2 开始,自动填充 Q 列,直到最后一行有数据在工作表的前几列中吗?
  • 你想从哪一列收集最后一行?
  • A 列可能是我为 vlookup 引用的最好的列
  • 只需将Cells(Rows.Count, "Q") 中的Q 更改为A,例如Cells(Rows.Count, "A")
  • 噢噢噢!完全误解了您在第一条评论中另一列的最后一行的意思。非常感谢您!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-01-05
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多