我是VBA新手,我写了一个代码来删除字符串中的重复单词。但是我希望能够计算字符串中单词的出现次数,如果出现次数少于10次,我希望删除该单词。
这是我的代码:
Function RemoveDupeWords(text As String, Optional delimiter As String = " ") As String
Dim dictionary As Object
Dim i, part
Set dictionary = CreateObject("Scripting.Dictionary")
dictionary.comparemode = vbTextCompare
For Each i In Split(text, delimiter)
part = Trim(i)
If part <> "" And Not dictionary.Exists(part) Then
dictionary.Add part, Nothing
End If
Next
If dictionary.Count > 0 Then
RemoveDupeWords = Join(dictionary.keys, delimiter)
Else
RemoveDupeWords = ""
End If
Set dictionary = Nothing
End Function
我该怎么做呢?
我还没有真正尝试过任何东西,因为我不知道从哪里开始
3条答案
按热度按时间2o7dmzc51#
没有一些示例数据很难回答这个问题,我只能想象你想要Assert你想要维护的子字符串保持在它们原来的位置,你可以创建一个函数,但是如果你愿意使用ms365,尝试一下:
C1
中的公式:vlju58qv2#
不要将字典值设置为
Nothing
,而是使用它来存储一个计数,并在找到更多相同单词时递增:现在您已经有了每个非空术语的计数,可以迭代字典并删除满足条件的任何内容:
请注意,我还没有测试这一点,这是很长一段时间以来,我写的VBA,但我相信语法是正确的。
更新:
我远程连接到一台Windows笔记本电脑,快速运行了一下,并取得了成功:
您可以看到,只有单词
a
和test
如预期的那样通过了字典。测试中使用的代码:
6tqwzwtp3#
如果您希望计算子字符串在字符串中出现的次数,可以使用下面的函数