Excel中的多字词替换

时间:2014-03-24 15:47:18

标签: mysql sql excel vba excel-vba

祝大家好!

我正在开展一个excel项目,我正在寻求一些帮助。我不介意这是通过公式还是脚本解决的。

首先,我将提供全局。我有一大堆SQL查询调用来自不同位置的各种字段。这些字段标题现在已经改变。我想用字段的新名称更新SQL查询。因此,我打算将所有查询复制到Excel电子表格中,然后在字符串中查找字段名称,并将其替换为另一个表格中的表格中的新字段名称。问题是每个查询大约有10个字段名称需要替换。

所以这就是我的想法。基本上,如果我在单元格A1中有一个字符串,其中包含:"我们是最好的"。对于字符串中存在的每个单词,我想检查它是否存在于另一个表中的表中。如果表中存在该单词,请将其替换。如果没有,那么转到下一个单词。继续单元格中的每个单词。

非常感谢任何可以提供的帮助。提前致谢!

1 个答案:

答案 0 :(得分:0)

考虑:

Sub FixIt()
    Dim r As Range, A As Range
    Dim s1 As Worksheet, s2 As Worksheet
    Set s1 = Sheets("Sheet1")
    Set s2 = Sheets("Sheet2")
    Set A = s1.Range("A:A").Cells.SpecialCells(xlCellTypeConstants)
    For Each r In A
        v = " " & r.Value & " "
        For j = 1 To 10
            oldv = " " & s2.Cells(j, 1).Text & " "
            newv = " " & s2.Cells(j, 2).Text & " "
            v = Replace(v, oldv, newv)
        Next j
        r.Value = Trim(v)
    Next r
End Sub

在这个例子中,替换表在Sheet2中,单元格A1到B10 ................我用“空格”填充以确保整个单词替换并避免需要< strong>拆分和加入