【问题标题】:How to compare string and substring如何比较字符串和子字符串
【发布时间】:2016-07-04 01:10:22
【问题描述】:

我有点坚持这个案子。我的问题是我想找到一个“相似”的文本并将其替换为正确的文本。

例子:

我有一个文本:ab123

我有一组文本: - abc123 - bds983 - fgh2315 - lol922

我需要将我的文本替换为我的文本集中最相似的文本,在这种情况下 ab123 将变为 abc123

我尝试过使用 InStr() 进行比较,但它只有在拼写错误在左侧或右侧时才有效,如果拼写错误在中间则不起作用。

这是代码

For i = 2 to LastRow
If (InStr(Cells(i, 1).Value, Cells (3, 4).Value)) <> 0 Then
Cells(3, 4).Value = Cells(i, 1).Value
End If
Next i

感谢您的关注

兰迪

【问题讨论】:

标签: excel substring vba


【解决方案1】:

您基本上希望将您的“正确”选项范围添加到您的自定义词典中,然后在未选中“忽略数字”的地方运行拼写检查,您可以将其设置为自动接受它找到的所有内容或要求用户单击“确定”进行确认,然后将它们留在字典中或将其清除。

您可以进入一堆逻辑,为最长公共子序列编写部分匹配算法,但您基本上是在使用您所描述的内容创建一个拼写检查器,而且您已经有了一个。因此,如果这不能满足您的需求,请详细说明为什么不这样做。 :-)

如果您的“单词”列表经常更改,那么您需要在每次拼写检查时将它们添加到字典中。如果没有,并且它是一个简短的列表,您可以突出显示它,拼写检查并将它们全部添加。

为此,您需要进入文件/选项校对并取消选中忽略带有数字的单词的选项。

修改自定义词典有很多成功之处,因此如果您需要在 VBA 中执行此操作,我不会重新编写代码。选择您最喜欢的并继续使用它,然后在遇到问题时在此处发布。 (我会针对您遇到的问题开始一个新线程。)

Application.SpellingOptions.IgnoreMixedDigits = False'how you ensure words with numbers get 
'spell checked if you end up coding it in VBA

祝你好运!

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-23
    • 2012-02-14
    • 2021-03-30
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多