【问题标题】:Automated tool for VLOOK UPVLOOKUP 的自动化工具
【发布时间】:2019-02-04 09:13:02
【问题描述】:

我需要在一组 excel 文件中执行许多 VLookup,为此我构建了一个工具,可以自动从一个文件到另一个文件的 VLookup,但我需要使其具有可扩展性和适应性。

为此,我想在工具的某些单元格(这是一个 Excel 文件)中输入 VLookup 的参数:

  • 键列位置
  • “返回值”列的位置
  • 范围内的列数

您知道如何更改我的工具以使其包含这些输入参数吗?

这里的代码示例:

For myrow = 3 To lastrow
    Range("b" & myrow).FormulaR1C1 = _
      "=VLOOKUP(RC[-1], Input!C[-1]:C[2],2,FALSE)"
Next myrow

【问题讨论】:

  • "I want to input in some cells of the tool (which is an Excel file) the parameters for the VLookup"我不确定我明白你的意思吗?
  • 意思是:在 D4 单元格中输入关键列的位置,在 D5 单元格中输入“返回值”列的位置...谢谢@Marcucciboy2
  • @Marcucciboy2 如果你愿意,我可以把工具发给你,但我不知道如何将 excel 文件附加到这篇文章...... :(
  • 你最好不要附加任何东西 - 我知道我不点击外部链接,如果有人想在未来引用这个链接腐烂是一个严重的问题:)
  • 好的@Marcucciboy2,感谢您的建议

标签: vba automation vlookup


【解决方案1】:

我不精通R1C1 表示法,但如果您使用常规的.Formula 表示法:

以下代码假定 A1 = 键列,A2 = 返回值列,A3 = 范围内的列数(实际上只是您的返回列)。

lastrow = 10 仅作为示例

另请注意 - 您必须缺少一个字段...因为您应该有 4 个变量 - 第一个参数的键列,第二个参数的 2 个列字母,以及第三个参数的列数。

Sub Test()

lastrow = 10

For myrow = 3 To lastrow

    'Range("B" & myrow).Formula = "=VLOOKUP(" & Range("A1").Value & myrow & ",Input!$" & Range("A1").Value & ":$" & Range("A2").Value & "," & Range("A3").Value & ",FALSE)"
    Debug.Print "=VLOOKUP(" & Range("A1").Value & myrow & ",Input!$" & Range("A1").Value & ":$" & Range("A2").Value & "," & Range("A3").Value & ",FALSE)"

Next myrow

End Sub

ActiveSheet 上的值:

立即窗口返回:

【讨论】:

    猜你喜欢
    • 2011-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-12-29
    • 2012-10-20
    • 1970-01-01
    • 2010-10-10
    相关资源
    最近更新 更多