我试图在2张纸上VLOOKUP一些值,如果找到了值,那么我在Sheet 1单元格上放置一个超链接,将其指向Sheet 2单元格。
我已经写了相同的Excel公式,它工作正常。但我无法将其转换为VBA公式。我做错了什么?
Excel公式:
=IF(ISERROR(VLOOKUP(RC[7],Sheet2!R1C1:R20C1,1,FALSE)),RC[7],HYPERLINK(CELL("address",INDEX(Sheet2!R1C1:R20C1,MATCH(RC[7],Sheet2!R1C1:R20C1,0))),RC[7]))
我试过的VBA公式:
Sheets(4).Formula = "= IF(ISERROR(VLOOKUP(RC[7],Sheet2!R4C2:R" & Lrow2 & "C2,1,FALSE)),RC[7],HYPERLINK(CELL(" & """address""" & ",INDEX(Sheet2!R4C2:" & "R" & Lrow2 & "C2,MATCH(RC[7],Sheet2!R4C2:" & "R" & Lrow2 & "C2,0))),RC[7]))"
P.S。:不要担心行索引和列索引。我为测试文件编写了公式,并为主文件编写了vba。
答案 0 :(得分:1)
你做的只是一个小错误。
Sheets(4).Formula = ""
表示在sheet4上应用的公式。逻辑表4有几乎百万行。公式在哪里?
Sheet(4).cells(row, column).Formula = ""
这是我刚刚为sumif写了几分钟的一个例子
shPivotAdjustmentsIRSPV.Cells(NumRows, NumColumns + 1).Formula =
"=Sum(" & shPivotAdjustmentsIRSPV.Cells(3, NumColumns + 1).Address &
":" & shPivotAdjustmentsIRSPV.Cells(NumRows - 2, NumColumns +
1).Address & ")"
答案 1 :(得分:0)
除了范围之外,如果要使用R1C1引用,则需要使用.FormulaR1C1
属性:
Sheets(4).Range("A7").FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[7],Sheet2!R4C2:R" & Lrow2 & "C2,1,FALSE)),RC[7],HYPERLINK(CELL(""address"",INDEX(Sheet2!R4C2:R" & Lrow2 & "C2,MATCH(RC[7],Sheet2!R4C2:R" & Lrow2 & "C2,0))),RC[7]))"