我有在细胞工作的公式,但它是一个很长的嵌套如果。它本质上是试图检查一个单元格是否有多个不同的值。(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