我有在細胞工作的公式,但它是一個很長的嵌套如果。它本質上是試圖檢查一個單元格是否有多個不同的值。(Excel的公式VBA)嵌套IF高亮紅
A2 =這是我的描述。 B2包含嵌套的if,它在A2描述中搜索多個單詞。當它貫穿每條if語句時,它將打印找到的單詞。
我需要使用VBA來設置這個公式到多個單元格,但我不知道爲什麼公式是錯誤的。 (Excel將其突出顯示爲紅色。)有沒有更好的方法來編寫它?
(我已經做了兩個嵌套如果對一條線,並使用「& _」分隔到下一行。)
Sub Search_For_Keywords()
Do Until ActiveCell.Value = ""
Range(B2).Activate
With ActiveCell
.Formula = "=IF(ISNUMBER(SEARCH(""Keyword1 "",A2,1)),""1"",IF(ISNUMBER(SEARCH(""Keyword2 "",A2,1)),""2"", & _
...有48個關鍵詞,多得需要在未來添加...
IF(ISNUMBER(SEARCH(""Keyword_n"",A2,1)),""n"",""No Keywords Found"")))))))))))))))))))))))))))))))))))))))))))))))"
End With
Loop
End Sub
UPDATE:
另一種解決方案(解決方法嗎?)是使用
=IFERROR(INDEX(E2:E6,MATCH(D2:D6,A2:A6,0)),"Not Found")
=INDEX (column to return a value from, MATCH (lookup value/column, column to lookup against, 0))
因此,我的D2:D6包含關鍵字搜索,E2:E6包含每個關鍵字的別名,然後A2:A6舉行了我想嘗試的實際描述,看看關鍵字是否在。
此代碼是現在短到可以放在VBA,唯一的缺點是你必須有一個包含此信息的列。再次
感謝所有幫助。其他更多的VBA特定解決方案可以在下面找到。
請將此設爲[mcve](也許關鍵字較少)。事實上,你只是給出你的陳述的一個片段,很難調試。 –
您確定您在新行的'_'後面使用雙引號嗎? –
我這麼認爲......讓我發佈上面的其他內容,如果我們能找到一種方法來調整它,那可能會更容易。 – mitchmitch24