在列中查找特定的文本值,并将其返回到自己的行到另一个单元格

我想编写一个Excelmacros(CommandButton)来search特定的列中的特定单词,并返回特定的单词到同一行,但另一个单元格。
例如:我想在列(A)中find“巧克力”,“松饼”,“柠檬”,“猴子”,“宝贝”,并且当它发现这些特定的词将它们返回到列(D)它被find了。

模板

我希望macros只search整个列(A:A)中的这5个单词,并且当它发现它将特定单词返回到它自己的find的行并将其插入到另一个单元中,但是同一行(例如从“B3”到“E3”中的分数“4”的“巧克力”到“D3”单元格)。

我应该如何使用这些function以及如何使用CommandButton?

试试下面的代码:

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列中。你为什么还要把分数列在特定的单词上? 如果您想要复制与find的单词相关的分数(而不是与find该单词的句子相关的分数),则可以将“E”列值的赋值replace为:

 Range("E" & intSentenceRow).Value = Range("H" & intWordRow).Value