我想编写一个Excel宏(CommandButton)来搜索特定列中的特定单词,并将特定单词返回到同一行但是另一个单元格。
例如:我想找到“巧克力”列(A)中的“,”松饼“,”柠檬“,”猴子“,”宝贝“,当它找到这些特定的单词时,将它们返回到列(D),找到它自己的行。
我希望宏只搜索整个列中的这5个单词(A:A),当它发现它将特定单词返回到找到它的行时,将其插入另一个单元格但是相同的行(例如“巧克力”到“D3”单元格,“B3”到“E3”的得分为“4”。)
我应该如何以及使用什么功能来使其工作?我点击CommandButton?
答案 0 :(得分:1)
请尝试以下代码:
Dim intSentenceRow As Integer
Dim intWordRow As Integer
Dim strSentence As String
Dim strWord As String
intSentenceRow = 3
strSentence = Range("A" & intSentenceRow).Value
Do
intWordRow = 3
strWord = Range("G" & intWordRow).Value
Do
If InStr(strSentence, strWord) > 0 Then
Range("D" & intSentenceRow).Value = strWord
Range("E" & intSentenceRow).Value = Range("B" & intSentenceRow).Value
Exit Do
End If
intWordRow = intWordRow + 1
strWord = Range("G" & intWordRow).Value
Loop Until strWord & "" = ""
intSentenceRow = intSentenceRow + 1
strSentence = Range("A" & intSentenceRow).Value
Loop Until strSentence & "" = ""
这假定您的句子在连续列表中运行(列表中间没有空白单元格)。它还假设(因为这就是你所说的)你想要将与相关句子相关的分数复制到E栏中。为什么你还列出了针对特定单词的分数?如果你想复制与找到的单词相关联的分数(而不是与找到单词的句子相关的分数),你将替换" E"列值包含:
Range("E" & intSentenceRow).Value = Range("H" & intWordRow).Value