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

时间:2017-01-15 08:40:11

标签: excel excel-vba vba

我想编写一个Excel宏(CommandButton)来搜索特定列中的特定单词,并将特定单词返回到同一行但是另一个单元格。
例如:我想找到“巧克力”列(A)中的“,”松饼“,”柠檬“,”猴子“,”宝贝“,当它找到这些特定的单词时,将它们返回到列(D),找到它自己的行。

Template

我希望宏只搜索整个列中的这5个单词(A:A),当它发现它将特定单词返回到找到它的行时,将其插入另一个单元格但是相同的行(例如“巧克力”到“D3”单元格,“B3”到“E3”的得分为“4”。)

我应该如何以及使用什么功能来使其工作?我点击CommandButton?

1 个答案:

答案 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