[英]VLOOKUP macro in VBA
我需要有关 vlookup 的宏脚本的帮助。 我想在 vlookup 脚本中硬编码表数组的信息。 现在的问题是,当我为 vlookup 函数添加一行时,它仅适用于最后一行,尽管所有行实际上都是来自数组表的信息。
我需要这方面的帮助,以确保如果宏运行,它将开始运行第一行宏并在第一行没有匹配时转到第二行。 第三行也一样。 提前致谢。
Sub Macro7()
Range("L1").Select
Range("L1").FormulaR1C1 = "=VLOOKUP(RC[-1],{1603101,""BFF""},2,FALSE)"
Range("L1").FormulaR1C1 = "=VLOOKUP(RC[-1],{1603102,""DELTA""},2,FALSE)"
Range("L1").FormulaR1C1 = "=VLOOKUP(RC[-1],{1608063,""BIST""},2,FALSE)"
Lastrow = ActiveSheet.UsedRange.Rows.Count
Range("L1").Autofill Destination:=Range("L1:L" & Lastrow)
End Sub
尝试这个:
Sub Macro7()
With ActiveSheet
.Range("L1:L" & .UsedRange.Rows.Count).FormulaR1C1 = "=VLOOKUP(RC[-1],{1603101,""BFF"";1603102,""DELTA"";1608063,""BIST""},2,FALSE)"
End With
End Sub
如果您愿意让 VBA 代码自己进行计算而不是创建公式,则可以使用类似以下代码的内容。 (通过公式进行的优点是每次数据更改时都会更新,而无需再次调用宏。)
Sub Macro7()
Dim r As Long
Dim v as String
With ActiveSheet
For r = 1 to Range("K" & .Rows.Count).End(xlUp).Row
Select Case .Cells(r, "K").Value
Case 1603101: v = "BFF"
Case 1603102: v = "DELTA"
Case 1608063: v = "BIST"
Case Else: v = "UNKNOWN!!"
End Select
.Cells(r, "L").Value = v
Next
End With
End Sub
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.