【问题标题】:VLOOKUP not applying to all the rows through VBAVLOOKUP 不适用于通过 VBA 的所有行
【发布时间】:2020-06-12 10:17:16
【问题描述】:

我正在使用 2 张纸将 VLOOKUP 应用于一列。该代码有效,但仅适用于一个单元格。我想应用于标题下方的所有单元格。 以下是我正在尝试执行的代码:

ESheet.Range("C2").Formula = "=VLOOKUP(B2, Roles!$A:$B, 2, FALSE)"

【问题讨论】:

  • 您只需将公式放在一个单元格中。我会在下一步将其复制到所有其他单元格
  • 你能帮我如何将它拖到所有单元格直到结束
  • 无需拖动公式。它可以一次放在所有行中。请看我的回答...

标签: excel vba excel-formula vlookup


【解决方案1】:

请使用此代码:

Sub VlookupAlColumn()
 Dim ESheet As Worksheet, lastR As Long
 'Set ESheet = ActiveSheet 'only for me, for testing reason
 lastR = ESheet.Range("C" & Cells.Rows.Count).End(xlUp).row
 ESheet.Range("C2:C" & lastR).Formula = "=VLOOKUP(B2, Roles!$A:$B, 2, FALSE)"
End Sub

【讨论】:

  • @CLR: 我不会那样说...Cells.Rows.Count所有工作表返回相同的Long变量值...所以,使用活动工作表永远不会产生问题。我错了吗?
  • lastR = ESheet.Range("A" & Cells.Rows.Count).End(xlUp).row --> 稍微调整一下,引用的列 A 是没有空行的现有列
  • @Nipen Mahajan:正确...也许,最好声明另一个 Long 变量并将其设为 lastRA。只是为了不误将它们混合在一起,当您有更多这样的情况时,它们并不像代码行那样严格连续。
猜你喜欢
  • 2019-10-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多