Vba VB vlookup在不同的表中显示特定值
你能帮我在不同的表格中填写一个仅适用于特定值的vlookup吗? 我为每一个都试过,为我,为不同的如果,等等 我需要vba从Sheet1中引入Sheet2值,但仅适用于在Sheet2的不同列中具有值“De Redispat”的行 下面是我为此函数编写的代码: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")
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=。。。。。