我想VLOOKUP在2張工作表中的某些值,如果找到值,那麼我在Sheet 1單元上放置一個超鏈接,將它指向Sheet 2單元格。通過VBA運行Excel公式
我寫了一個相同的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。
不要考慮「迴歸基礎」。你想在這裏做什麼?您的Excel配方和支持vba *非常脆弱。 – Bathsheba 2015-03-25 08:12:46
剛剛嘗試了你的VBA公式,添加了'Cells(1,1)',它工作。註釋爲了測試目的,我將工作表索引更改爲1。 (1).Cells(1,1)。Form1 = _ 「= 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]))'' – 2015-03-25 08:16:17
@BranislavKollár謝謝。該公式現在正在工作。 'Sheet(1).Cells(Lrow3,3).FormulaR1C1 =「= IF(ISERROR(VLOOKUP(Sheet4!R&Lrow3&」C9,Sheet2!R4C2:R&Lrow2&「C2,1,FALSE)) ,Sheet4!R&Lrow3&「C9,HYPERLINK(CELL(」&「」「address」「」&「,INDEX(Sheet2!R4C2:」&「R」&Lrow2&「C2,MATCH(Sheet4!R」 &Lrow3&「C9,Sheet2!R4C2:」&「R」&Lrow2&「C2,0))),Sheet4!R&Lrow3&」C9))''但是我又遇到了另一個問題。當我運行我的整個代碼時,一個彈出窗口被顯示2次(1個用於Sheet4,另一個用於Sheet2)詢問文件名。 「」「地址」「」有什麼問題嗎? – 2015-03-25 08:43:01