簡體   English   中英

Excel VBA-用戶定義函數-將與數組相關的公式(常規公式上為CTRL + SHIFT + ENTER)轉換為UDF

[英]Excel VBA - User Defined Function - converting array related formula (CTRL + SHIFT + ENTER on a normal formula) to a UDF

我一直在繞過與我的問題非常相似的幾個線程。 但是,有多種解釋可能不適用於我的情況。 我有這個“常規” excel公式:

={IF(OR(ISNUMBER(SEARCH($O$2:$O$2000,A2))), INDEX($P$2:$P$2000, MATCH(TRUE, ISNUMBER(SEARCH($O$2:$O$2000, A2)),0)), "")}

我想使用以下參數將其轉換為Excel VBA函數

FUNCTION ADVLOOKUP(TAG, SENTENCESTOLOOKAT, WORDSTOLOOKUP)

TAG =表示原始公式中的P列,該列將置於表示SENTENCESTOLOOKAT的每個單元格/行旁邊

SENTENCESTOLOOKAT =表示A2或公式要定位的列A上的任何單元格。 這是一個包含WORDSTOLOOKUP中的任何一個的句子

WORDSTOLOOKUP =表示列O,它是每個SENTENCESTOLOOKAT上要檢查的要搜索單詞的清單

抱歉,我無法發布Excel文件,因為顯然我的信譽/代表得分很低。 :(但是,如果您能建議上述Excel公式是否可以轉換為UDF,我將不勝感激。

謝謝!

要僅返回一個值,可以使用一個簡單的調用來評估:

Function ADVLOOKUP(TAG As Range, SENTENCESTOLOOKAT As Range, WORDSTOLOOKUP As Range)
    ADVLOOKUP = SENTENCESTOLOOKAT.Worksheet.Evaluate("INDEX(INDEX(" & TAG.Address & ",MATCH(TRUE,ISNUMBER(SEARCH(" & _
                    WORDSTOLOOKUP.Address & "," & SENTENCESTOLOOKAT.Address & ")),0)),)")
End Function

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM