运行 VLookup 函数包含在 VBA 宏按钮中
Run VLookup function housed within a VBA Macro Button
我一直在研究 Vlookup 函数(在单元格中工作),如下所示:
=IFERROR(VLOOKUP(B2&"*", 'Sheet2'!$AC:$AC, 1, FALSE), "N/A")
这就是使用这个公式背后的全部想法:
- 在工作表 1 col.B 中查找文本字符串值(示例:BajaTurkeyAvocado_6S_HeroRegular_Mobile)
- 查看 Sheet2 列中是否存在与此类似的值。 AC(例如:BajaTurkeyAvocado_6S_HeroRegular_Mobile.png 是一个匹配项,因为它的值相似)
- 如果匹配,请放置 Sheet2 列。 AC 值到 Sheet1 列。 E(此列包含我的 VLookup 函数,如上所示):
我很难在我的 VBA 宏按钮中实现这个 VLookup 函数。我不想把它写在 E 列的单元格中。
这就是我的目标:
- 单击 VBA 按钮
- 根据要在 B 列中查找的项目数,如上所示对 E 列 Sheet1 中的所有值运行 vlookup
- 将查找值转换为 E 列中的字符串(而不是公式)
简而言之,只要知道如何将单元格中编写的 vlookup 函数转换为 VBA 宏按钮中编写的函数将非常有帮助。
谢谢!
值得庆幸的是,当您将公式应用于多单元格区域时,VBA 会自动调整公式。因此,您可以立即将创建的公式直接应用于整个列,而不必循环。
然后您可以.Value = .Value
将公式转换为字符串。
Sub Example()
Dim lastrow As Long
lastrow = Sheet1.Cells(Sheet1.Rows.Count, 2).End(xlUp).Row
Dim TargetRange As Range
Set TargetRange = Sheet1.Range("E2:E" & lastrow)
With TargetRange
.Formula = "=IFERROR(VLOOKUP(B2&""*"", 'Sheet2'!$AC:$AC, 1, FALSE), ""N/A"")"
.Value = .Value
End With
End Sub
LastRow 用于 trim 使用区域的范围,因为 VLookUp 很昂贵,运行 它在整个列(甚至是空的部分)上会浪费很多时间。
我一直在研究 Vlookup 函数(在单元格中工作),如下所示:
=IFERROR(VLOOKUP(B2&"*", 'Sheet2'!$AC:$AC, 1, FALSE), "N/A")
这就是使用这个公式背后的全部想法:
- 在工作表 1 col.B 中查找文本字符串值(示例:BajaTurkeyAvocado_6S_HeroRegular_Mobile)
- 查看 Sheet2 列中是否存在与此类似的值。 AC(例如:BajaTurkeyAvocado_6S_HeroRegular_Mobile.png 是一个匹配项,因为它的值相似)
- 如果匹配,请放置 Sheet2 列。 AC 值到 Sheet1 列。 E(此列包含我的 VLookup 函数,如上所示):
我很难在我的 VBA 宏按钮中实现这个 VLookup 函数。我不想把它写在 E 列的单元格中。
这就是我的目标:
- 单击 VBA 按钮
- 根据要在 B 列中查找的项目数,如上所示对 E 列 Sheet1 中的所有值运行 vlookup
- 将查找值转换为 E 列中的字符串(而不是公式)
简而言之,只要知道如何将单元格中编写的 vlookup 函数转换为 VBA 宏按钮中编写的函数将非常有帮助。
谢谢!
值得庆幸的是,当您将公式应用于多单元格区域时,VBA 会自动调整公式。因此,您可以立即将创建的公式直接应用于整个列,而不必循环。
然后您可以.Value = .Value
将公式转换为字符串。
Sub Example()
Dim lastrow As Long
lastrow = Sheet1.Cells(Sheet1.Rows.Count, 2).End(xlUp).Row
Dim TargetRange As Range
Set TargetRange = Sheet1.Range("E2:E" & lastrow)
With TargetRange
.Formula = "=IFERROR(VLOOKUP(B2&""*"", 'Sheet2'!$AC:$AC, 1, FALSE), ""N/A"")"
.Value = .Value
End With
End Sub
LastRow 用于 trim 使用区域的范围,因为 VLookUp 很昂贵,运行 它在整个列(甚至是空的部分)上会浪费很多时间。