感谢您的帮助!在vba中需要帮助来编写一个过滤我的数据的宏,然后将vlookup仅应用于过滤范围。
离)
OrderTable - 订单列表及其相应的状态,(有些简单,有些模糊)
StatusTable - 包含所有模糊订单的列表,但包含更详细的信息
每个表都包含在同一工作表中的单独选项卡上。我需要帮助编写VBA 以过滤OrderTable到仅模糊状态订单,然后是vlookup填充,以便我们可以引用StatusDetails表来检索更多准确的状态。如果不是"模糊"我们需要保持原始状态,所以a = iferror不会'帮帮忙
(基本上,我们正在使用excel离开加入"模糊"订单)
这一切都发生在具有数千个订单的工作表上(引入更复杂的描述),每天多次。
订单表
状态表
我遇到的问题是,这是一个动态范围,在过滤后......单元格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
感谢您的耐心
答案 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),"")