如何將下面的內容轉換為巨集 vba 程式碼? =索引(分類,匹配(真,ISNUMBER(搜尋(名稱,O12)),0))
我在 Sheet1 中有一個列 (O),需要從中進行搜尋。我在sheet2中有兩列用名稱定義(名稱和分類)。當在 Sheet1 的 O 欄位中找到名稱時,P 欄位具有 Sheet2 分類中的對應值
Sheet1 第 O 欄 我們客戶的名字是 John Doe
Sheet2 名稱分類 John Doe A 級
Sheet1 列 P 的值為 A 類
請幫忙!
答案1
由於樣本數據不可用,因此我假設,
Sheet 1
列O
,要在其中搜尋的名稱O2:O10
。Sheet 2
有Clasification
&Names
,在&Named range
中。A2:A10
B2:B10
- 您需要 範圍內的
P2:P10
結果Sheet1
。
首先,我想建議如何將 Excel 公式指派給 VBA 程式碼。
Range("P2").FormulaArray = "=IFERROR(INDEX(Clasification,MATCH(TRUE,ISNUMBER(SEARCH(Names,O2)),0)),""No Found"")"
注意您需要一個陣列 (CSE) 公式才能.FormulaArray
使用它。
但由於Named Range
在使用 VBA 巨集時需要聲明,因此我想推薦您使用以下程式碼作為Standard Module
.
Sub Formula()
Dim Clasification As Range
Dim Names As Range
Set Clasification = Sheets("Sheet2").Range("A2:A10")
Set Names = Sheets("Sheet2").Range("B2:B10")
Range("P2").FormulaArray = "=IFERROR(INDEX(Clasification,MATCH(TRUE,ISNUMBER(SEARCH(Names,O2)),0)),""No Found"")"
Range("P2:P10").FillDown
End Sub
根據需要調整程式碼中的儲存格參考和命名範圍。