114*_*114 4 excel vba excel-vba
假设我有一个任意长度的列,其中每个单元格包含一串文本.有没有办法确定列中最常出现的单词(事先不知道要检查哪些单词),然后在两列表中将这些单词及其频率排序?VBA最适合这项任务吗?
例如,单元格可能包含字符串"This is a string,此字符串中的字符数> 0." (有意的错误)
Gar*_*ent 11
选择A列的一部分并运行这个小宏(该表将放在cols中.B&C :
Sub Ftable()
Dim BigString As String, I As Long, J As Long, K As Long
BigString = ""
Run Code Online (Sandbox Code Playgroud)
'添加代码以将"全部"和"全部"加起来"添加代码以分开"." "!" 从它们之前的单词开始,以便在单词中计算单词'.例如:"全部".不应该报告为1"全部".但是"全部"被添加到"所有"单词的总数中.'你会发布这个新代码吗?
For Each r In Selection
BigString = BigString & " " & r.Value
Next r
BigString = Trim(BigString)
ary = Split(BigString, " ")
Dim cl As Collection
Set cl = New Collection
For Each a In ary
On Error Resume Next
cl.Add a, CStr(a)
Next a
For I = 1 To cl.Count
v = cl(I)
Cells(I, "B").Value = v
J = 0
For Each a In ary
If a = v Then J = J + 1
Next a
Cells(I, "C") = J
Next I
End Sub
Run Code Online (Sandbox Code Playgroud)