Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Vba VB vlookup在不同的表中显示特定值_Vba_If Statement_Vlookup - Fatal编程技术网

Vba VB vlookup在不同的表中显示特定值

Vba VB vlookup在不同的表中显示特定值,vba,if-statement,vlookup,Vba,If Statement,Vlookup,你能帮我在不同的表格中填写一个仅适用于特定值的vlookup吗? 我为每一个都试过,为我,为不同的如果,等等 我需要vba从Sheet1中引入Sheet2值,但仅适用于在Sheet2的不同列中具有值“De Redispat”的行 下面是我为此函数编写的代码: Dim result As String Dim Sheet2 As Worksheet Set Sheet2 = ActiveWorkbook.Sheets("Sheet2") Set MyRange = Range("X2:X800")

你能帮我在不同的表格中填写一个仅适用于特定值的vlookup吗? 我为每一个都试过,为我,为不同的如果,等等

我需要vba从Sheet1中引入Sheet2值,但仅适用于在Sheet2的不同列中具有值“De Redispat”的行

下面是我为此函数编写的代码:

Dim result As String
Dim Sheet2 As Worksheet
Set Sheet2 = ActiveWorkbook.Sheets("Sheet2")
Set MyRange = Range("X2:X800")
If MyRange = "De rediscutat" Then
Worksheets("Sheet2").Range("N2:N694").Formula = Application.WorksheetFunction.VLookup(Sheet2.Range("I2:I694"), Sheet1.Range("G2:M500"), 7, False)
End If
End Sub```

Thanks!

您将需要一个循环来执行此操作。您的代码也有很多冗余。这将有望让您开始:

Dim cel As Range, myrange As Range

Set myrange = Sheet2.Range("X2:X800")

For Each cel In myrange
    If cel.Value = "De rediscutat" Then 
        'Grab whichever value you need and put it where you need it
    End if
next cel

我建议使用
Cel.Row
获取循环中当前单元格的行号,或者使用
Cel.Offset(,)
获取同一行上的单元格。

对于每个
对于I
都可以通过
MyRange
进行循环,但您的代码中都没有包含这两个选项

问题可能不是您的循环,而是您测试单元的方式<代码>如果MyRange=“De redispat”仅在MyRange`为单个单元格时有效


如果您
Dim cell As Range
为MyRange中的每个单元格重新创建一个
循环,并使用`If cell=“De redispat”,那么它应该可以工作。

您可以逐个单元格循环执行此操作。无需循环即可轻松完成。在列X上抛出一个过滤器,将newRange设置为相交(SpecialCells(xlCellTypeVisible),N1:N&lastrow),newRange.Formula=。。。。。