提问人:TheEndUK 提问时间:3/18/2022 更新时间:3/18/2022 访问量:337
VBA VLOOKUP 公式,用于引用另一张工作表中的动态范围
VBA VLOOKUP formula to refer to a dynamic range in another sheet
问:
VBA VLOOKUP 公式,用于引用另一张工作表中的动态范围
晉語 我正在尝试将 VLOOKUP 公式合并到一个名为“RESULTS”的工作表中,并通过 VBA 在另一个名为“DATA”的工作表中引用动态数据范围 - 我拥有的公式工作正常,但它不是动态的,并且我并非无法在宏中复制它,因此,鉴于我有限的 VBA 技能, 我碰了一堵砖墙,所以任何建议和指导将不胜感激。
这是我想复制用于宏的公式,但如前所述,它是一个固定范围,我需要它是动态的:
=IF(IFERROR(VLOOKUP(A2,IF({1,0},DATA!$C$5:$C$20000,DATA!$B$5:$B$20000),2,0),“”)=0,“”,IFERROR(VLOOKUP(A2,IF({1,0},DATA!$C$5:$C$20000,DATA!$B$5:$B$20000),2,0),“”))
这是我写的 VBA - 只是 VLOOKUP 公式不起作用,COUNTIFS 公式工作正常。
Sub DATA_Report()
'Add in formulae
Dim DataLastRow As Long
Dim ResultsLastRow As Long
'Determine last row of DATA Scheme Information sheet
With Sheets("DATA")
DataLastRow = .Cells(.Rows.Count, "A").End(xlUp).Row
End With
'Determine last row in col B for RESULTS sheet - Add in formula - MEMBER REFERENCE
With Sheets("RESULTS")
ResultsLastRow = .Cells(.Rows.Count, "B").End(xlUp).Row
'The following formula is not working
.Range("G2:G" & .Cells(.Rows.Count, "A").End(xlUp).Row).FormulaR1C1 = "=IF(IFERROR(VLOOKUP(RC[-6],IF({1,0}," & "DATA!R5C3:R" & DataLastRow & ",DATA!R5C2:R" & DataLastRow & "),2,0)," & """"")=0," & """""," & "IFERROR(VLOOKUP(RC[-6],IF({1,0}," & "DATA!R5C3:R" & DataLastRow & ",DATA!R5C2:R" & DataLastRow & "),2,0),""""))"
'The following COUNTIFS formula works fine
.Range("H2:AA" & ResultsLastRow).FormulaR1C1 = "=IF(COUNTIFS(DATA!R5C2:R" & DataLastRow & "C2,RC7,DATA!R5C1:R" & DataLastRow & "C1,R1C)>0,""Yes"","""")"
End With
End Sub
提前非常感谢, TE公司
答: 暂无答案
评论