在Excel VBA中使用VLookup处理多个工作表

在Excel VBA中使用VLookup处理多个工作表,excel,vba,excel-formula,Excel,Vba,Excel Formula,我们正在尝试创建一个宏,该宏从(c)列获取一个值,并在单独的工作簿上搜索一个值,然后从一行和两列中提取两条信息。代码的其余部分只是根据列中是否有信息将一个单词变为红色或绿色 当我们将VLookup函数粘贴到excel vba中时,它会变成红色,我们做错了什么,有没有简单的方法来解决这个问题。代码如下: Sub MMRFValidation() Dim c As Range Dim finder As Range Application.ScreenUpdating = False For

我们正在尝试创建一个宏,该宏从(c)列获取一个值,并在单独的工作簿上搜索一个值,然后从一行和两列中提取两条信息。代码的其余部分只是根据列中是否有信息将一个单词变为红色或绿色

当我们将VLookup函数粘贴到excel vba中时,它会变成红色,我们做错了什么,有没有简单的方法来解决这个问题。代码如下:

Sub MMRFValidation()

Dim c As Range
Dim finder As Range

Application.ScreenUpdating = False

For Each c In Range("C:C")
    If c.Value = "" Then
        c.Offset(, -2).Font.Color = vbRed
        c.Offset(, 11).Value = "Need to contact vendor"
        c.Offset(, 12).Value = "Need to contact vendor"
    Else
        Set finder = Range("C:C").Find(what:=Workbook("U100 Material Information.xlsx").Worksheet("Sheet1").Range("A:A"), LookIn:=xlValues, LookAt:=xlWhole)

        leadtime = finder.Offset(, 13).Value
        price = finder.Offset(, 15).Value


        If price = "0.01" And leadtime = "21" Then
            c.Offset(, -2).Font.ColorIndex = 7
            c.Offset(, 11).Value = finder.Offset(, 13).Value
            c.Offset(, 11).Value = finder.Offset(, 15).Value
        Else
            c.Offset(, -2).Font.Color = vbGreen
            c.Offset(, 11).Value = finder.Offset(, 13).Value
            c.Offset(, 11).Value = finder.Offset(, 15).Value
        End If

    End If
Next c
Application.ScreenUpdating = True
End Sub

谢谢

首先,您声明了
交付周期为范围
,但随后您尝试使用公式(字符串)?
vbPurple
也不是问题。我们将vbPurple更改为颜色索引7,并将交付周期和价格更改为字符串。我们已经运行代码一段时间了,但它仍然没有完成。如果您将
leadtime
更改为
String
-
leadtime,代码将无法运行。Value
将抛出错误。你能用修改后的代码回答你的问题吗?我可能误读了,但看起来你的查找范围是R1:R1048576,但你在单列范围内查找第13列和第15列