如何在过滤范围内填写Vlookup | Excel VBA

时间:2018-01-03 21:16:26

标签: excel vba excel-vba vlookup

感谢您的帮助!在vba中需要帮助来编写一个过滤我的数据的宏,然后将vlookup仅应用于过滤范围。

离)

OrderTable - 订单列表及其相应的状态,(有些简单,有些模糊)

StatusTable - 包含所有模糊订单的列表,但包含更详细的信息

每个表都包含在同一工作表中的单独选项卡上。我需要帮助编写VBA 以过滤OrderTable到模糊状态订单,然后是vlookup填充,以便我们可以引用StatusDetails表来检索更多准确的状态。如果不是"模糊"我们需要保持原始状态,所以a = iferror不会'帮帮忙

(基本上,我们正在使用excel离开加入"模糊"订单)

这一切都发生在具有数千个订单的工作表上(引入更复杂的描述),每天多次。

订单表

OrderTable

状态表

StatusTable

我遇到的问题是,这是一个动态范围,在过滤后......单元格B3中的顺序并不总是"模糊",第一个"模糊" ;该范围内的单元格有时可能是B2或B5,具体取决于尚未履行的订单

Sub Test_macro()

    Range("$A$1:$B$6").AutoFilter Field:=2, Criteria1:="Vague"
    ActiveCell.FormulaR1C1 = "=VLOOKUP(B3),StatusTable!A:B,2,0)"
    Sheet1.Range("B3", "B" & Cells(Rows.Count, 1).End(xlUp).Row).FillDown

End Sub

感谢您的耐心

2 个答案:

答案 0 :(得分:2)

使用SpecialCells

Sub Test_macro()

Sheet1.Range("A1:B6").AutoFilter Field:=2, Criteria1:="Vague"
Sheet1.Range("B2:B" & Cells(Rows.Count, 1).End(xlUp).Row).SpecialCells(xlCellTypeVisible).FormulaR1C1 = "=VLOOKUP(RC[-1],StatusTable!C1:C2,2,FALSE)"
Sheet1.ShowAllData

End Sub

答案 1 :(得分:0)

为何过滤?只需应用带有错误捕获的Vlookup。

=iferror(Vlookup(bla),"")
相关问题