-1

我被难住了,我的 Vlookup 搞砸了,我试图将列中的所有值更改为文本,将所有值更改为一般值。这是我的代码,我可以单独进行 vlookup,但我需要它们一个接一个地进行,当第一个 vlookup 公式返回 #N/A 或 #NAME 或 #VALUE 时,我需要第二个 vlookup 公式通过并填写适当的领域,任何建议,我已经尝试了很多不同的变化。这是我现在所拥有的,但错误显示预期列表分隔符或 (,如果我采用 IFERROR 和第二个函数,所有数字值都有效,因为大多数品牌名称可以由序列号第 4 位和第 5 位确定,但有些序列号有字母到位,这就是整个问题,有些甚至有一个字母和一个破折号,A-就是一个例子,我需要能够对所有这些类型进行 VLOOKUP 但不能替换具有准确值的字段,因此第一个 vlookup 会替换所有第二个来填充错误字段。帮助将不胜感激。

这是重现错误的代码。

Sub Work2()
Dim LR As Long
Dim row As String
row = "W2"
row = "W" & x
LR = Range("W" & Rows.Count).End(xlUp).row
Range(Columns(6), Columns(7)).Select
For x = 0 To 2
row = "W" & x
Range("A2:A" & LR).Formula = "=IFERROR(VLOOKUP(VALUE(" & row &  "),[gpic.xslx]Sheet1!$R:$S,2,FALSE),"=VLOOKUP(" & row & ",[gpic.xslx]Sheet1!$R:$S,2,FALSE)")"


Next


End Sub

这是可以执行所有数字 Vlookup 字段但不能正确执行字母的代码我尝试使用上面的代码修复它,但就像我说的那样它会产生错误

Sub Work2()
Dim LR As Long
Dim row As String
row = "W2"
row = "W" & x
LR = Range("W" & Rows.Count).End(xlUp).row
Range(Columns(6), Columns(7)).Select
For x = 0 To 2
row = "W" & x
Range("A2:A" & LR).Formula = "=VLOOKUP(VALUE(" & row & "),[gpic.xslx]Sheet1!$R:$S,2,FALSE)"

Next




End Sub

有关附加信息,我查找的工作表中的 R 和 S 具有与品牌相同的所有代码,所以我真的只会得到正确的结果或 #VALUE 我相信。

Column R Column S
1        Ford
2        Dodge
AE       Hyundai

这就是 vlookup 的工作方式

4

1 回答 1

0
    A      B        C        D        E       F
    1     Adam      1      Adam
    2     Peter     3      John
    3     John      4      Phil
    4     Phil      6      #N/A

    A      B        C        D        E       F 
    1     Adam      1      Adam       6      Peter
    2     Peter     3      John
    3     John      4      Phil
    4     Phil      6      Peter

Cell D1 Contains the formula: =IF(ISERROR(INDEX(B:B,MATCH(C1,A:A,0))),INDEX(F:F,MATCH(C1,E:E,0)),INDEX(B:B,MATCH(C1,A:A,0))) Copy it down.

于 2013-07-31T17:35:49.127 回答