VBA代码求助,遍历相同的字母组合?

作者&投稿:示萍 (若有异议请与网页底部的电邮联系)
~ 以下是修改后的VBA代码,用于遍历1830个单词表中至少三个字母相同的字母组合,并输出相同的部分:
Sub FindCommonLetterCombinations()
'定义变量
Dim words() As String
Dim i, j, k, l, m As Integer
Dim commonLetters As String

'读取单词表
words = Split("apple,banana,pear,orange,grape,pineapple,kiwi,strawberry,melon,papaya,durian,peach,lemon,lime,cherry,blueberry,raspberry,mango,watermelon,avocado,apricot,fig,guava", ",")

'遍历单词表
For i = 0 To UBound(words)
For j = i + 1 To UBound(words)
'查找相同的字母组合
For k = 1 To Len(words(i))
For l = 1 To Len(words(j))
If Mid(words(i), k, 3) = Mid(words(j), l, 3) And Len(words(i)) >= k + 2 And Len(words(j)) >= l + 2 Then
For m = 4 To Len(words(i)) - (k - 1)
If Mid(words(i), k + m - 1, 1) <> Mid(words(j), l + m - 1, 1) Then
Exit For
Else
If m >= 3 Then
commonLetters = Mid(words(i), k, m)
Debug.Print "单词 " & words(i) & " 和 " & words(j) & " 共享字母组合: " & commonLetters
End If
End If
Next m
End If
Next l
Next k
Next j
Next i
End Sub
这段代码会输出所有至少有三个字母相同的字母组合,并附上它们所属的两个单词。为了避免重复输出相同的字母组合,代码只会在第一次找到时输出,并忽略后续重复出现的情况。
需要注意的是,由于要考虑多种可能的组合,代码执行时间可能较长,特别是在单词列表较大时。如果您需要处理更大的数据集或提高代码效率,可以考虑使用其他算法或工具进行优化。

以下是VBA代码,用于查找1830个单词中至少三个字母相同的字母组合并输出相同的部分。
Sub FindCommonLetterCombinations()
'定义变量
Dim words() As String
Dim i, j, k, l, m As Integer
Dim commonLetters As String

'读取单词表 words=Split("apple,banana,pear,orange,grape,pineapple,kiwi,strawberry,melon,papaya,durian,peach,lemon,lime,cherry,blueberry,raspberry,mango,watermelon,avocado,apricot,fig,guava", ",")

'遍历单词表
For i = 0 To UBound(words)
For j = i + 1 To UBound(words)
'查找相同的字母组合
For k = 1 To Len(words(i))
For l = 1 To Len(words(j)) - (k - 1)
If Mid(words(i), k, 1) = Mid(words(j), l, 1) Then
For m = 2 To Len(words(i)) - (k - 1)
If Mid(words(i), k + m - 1, 1) <> Mid(words(j), l + m - 1, 1)
Then
Exit For
Else
If m >= 3 Then
commonLetters = Mid(words(i), k, m)
Debug.Print "单词 " & words(i) & " 和 " & words(j) & " 共享字母组 合: " & commonLetters
End If
End If
Next m
End If
Next l
Next k
Next j
Next i
End Sub

该代码首先读取了一个包含1830个单词的数组,然后通过嵌套循环遍历数组中每个单词的每个字符,并查找与其他单词中相同的字符。如果找到相同的字符,则继续比较后续字符是否相同,直到不相同为止。如果相同的字符数量大于等于3,则将它们输出到控制台窗口。
请注意,由于代码使用了嵌套循环,因此当单词表非常大时,可能需要一些时间才能执行完毕。

以下是使用VBA代码实现查找至少三个字母相同的单词组合的示例:
Sub FindWordCombinations()
Dim words() As String
words = Array("word1", "word2", "word3", ...) ' 填入你的单词列表

Dim i As Long, j As Long, k As Long
For i = 0 To UBound(words) - 1
For j = i + 1 To UBound(words)
For k = 1 To Len(words(i)) - 2
If InStr(1, words(j), Mid(words(i), k, 3)) > 0 Then
Debug.Print words(i) & " - " & words(j) & ": " & Mid(words(i), k, 3)
End If
Next k
Next j
Next i
End Sub
这个VBA代码是使用三重循环遍历单词列表并查找至少三个相同字母的单词组合。对于每个单词组合,代码将共享的字母组合打印到调试窗口中。
你只需将单词数组替换为你的实际单词列表,就可以使用此代码来查找任意两个单词中至少三个相同的字母组合。


二叉树怎么推导?
中序遍历:BA 后序遍历:AB 推出B是右子树的根结点,并且存在右子树,但没有左子树,因为从中序遍历可知B只有右子树,没有左子树。还原二叉树如下图:前序为:CEDBA 推导的方法只需记住下面的规则即可,然后逐步分割法,就像我上面那样推导。拿到左右子树反复套用下面的遍历规则,很快就可以还原一棵完整的树...

求助:循环赛—java源代码
\/\/遍历此运动员可选择的比赛 for(String[] match : canDoList){ List<String[]> newList = copyArrayList(selectedList); \/\/记录当前比赛 newList.add(match); \/\/最后一个人员 if (playerNum == n) { allMatchData[nowDay].add(newList); }else{ doDetAllMatchNowDay(playerNum+1, newList); }...

扫雷输入:"xyzzy"5个字母,然后按shift键怎么没用
010019BA . 3D 09020000 cmp eax, 209010019BF . 7D 2D jge short winmine.010019EE 010019C1 ....\/\/ 下面是过关代码01004998 B8 01000000 mov eax, 1 ; 双重循环遍历;0100499D B9 01000000 mov

计算机算法题求助!给定线性序集中n个元素和一个整数k,1≤k≤n,要求找...
队列和堆栈一般不会去取第K个元素 或者你先找出最小的数min 再构建个2层的循环嵌套 里层遍历这个结构体 从中找出比最小的大的一个元素并覆盖min的值 外层做k-1次 最后 min就是你想要的 在这里我就不替你写了 自己想想看 看来楼主的基础不太好啊 要多编编程 多读读别人的代码才行啊 ...

ArrayList遍历输出问题
你好 这里假设你的bean叫做Bean,你想打出它的属性category。it.next得到的是一个对象,就是你设置的java bean对象。你如果想取到Category的内容,而且注意泛型的使用,你需要 Iterator<Bean> it = list.iterator();out.print("遍历list得到的结果:"+"");while (it.hasNext()) { out.print(it....

求助Easyui datagrid 的默认选中问题
easyui我用的版本时,是没有默认选择的事件或者处理的,只有自己处理。 我用的办法是百度来的,在datagrid加载完毕后,在完成事件中,遍历数据,然后根据你的需要,在用代码选中你需要的多少行数据

LZW算法LZW算法
将此组合加入code_table,同时赋给prefix_character,转向执行步骤2。5) 若在code_table中,遍历current_character的所有字符,输出它们,将current_character赋给prefix_character,转向执行步骤2。6) 若current_character小于N,直接输出它,将current_character赋给prefix_character,转向执行步骤2。

求助ios的编程题目(swift)
用swift创建一个数组然后添加10个元素(可以使用 append方法或者赋值运算符 += 在数组末尾添加元素),再遍历输出,代码如下:var arr = [String]();for ind in 1...10 {arr.append("Hello\\(ind)");} for ind in 1...10 {print(arr[ind-1]);} 另一种使用+=的代码如下:var arr = [...

求助以下的宏代码是什么意思,有木有懂行的专家可以翻译以下的哈_百度...
Next i \/\/i自增,用于将i在当前for循环的上界与下界之间逐级遍历 Application.ScreenUpdating = True '开启屏幕刷新 End Sub \/\/结束g函数作用域 Sub 打印() \/\/进入打印函数 ExecuteExcel4Macro "PRINT(1,,,1,,,2,,,TRUE,,FALSE)"\/\/这里应该是用的一个com控件中的接口函数PRINT,并对...

求助大量表格的批量行列转置
另外那些表格,包括工作簿文件的格式是不是都是一样的,你不说清楚,有心帮你的人也帮助不到你,你这个问题的解决对于玩VBA的人来说是分分钟的事。不过我是帮助不到你了,因为VBA忘光了。不过这个程序是很简单的,大概的结构是一个行列转置的函数或数组ARR,加遍历工作表和遍历工作簿的代码,10多...

通渭县17574249848: 求EXCEL的VBA代码,用“1、2、3、4”四个字符,随机生成排列组合 -
严陆倍松: 1、排列组合需要多少位数字 2、这四个数字是否可以重复? 可以重复的,可以使用=RANDBETWEEN(1,4) 如果还有具体要求,请进一步明确

通渭县17574249848: 求助 使用VBA 删除单元格内相同的的字符的代码. -
严陆倍松: Sub DelRepeat()'VBE/工具/引用/Microsoft Forms 2.0 Obejct Library Dim myDataObject As New MSForms.DataObject Dim strAlls As String, myString As String Dim i As Long, lngLenth As Long, oText As String ActiveDocument.Content.Cut ...

通渭县17574249848: excel vba 字符相似度问题 -
严陆倍松: Sub similar()Dim s,m For i=2 to Columns(3).Find("*", , , , 1, 2).rowFor j=2 to Columns(1).Find("*", , , , 1, 2).rows=sim(Range("B" & i),Range("A" & j))If j=2 Thenm=sElseIf s>m Thenm=sElseIf m=1 ThenExit ForEnd IfEnd If...

通渭县17574249848: 关于EXCEL中采用VBA代码对数据进行组合的问题 -
严陆倍松: 1、代码是可以实现的. 2、关键在于将数学组合的公式用代码实现. 3、用程序列举中所有的组合. 3、将所有组合列举出来,就是你想要的结果.

通渭县17574249848: vb程序设计代码完善:编制程序从输入的字符串中删除重复出现的字母(小写字母需转换为大写字母) -
严陆倍松: If Then idx = asc(t) - 64 If a(idx) <> 1 Then s1 = s1 & t a(idx) = 1 End If Else s1 = s1 & t End If 想了半天没想出来上面的IF和后面的ELSE有什么用,删除重复应该也不是这么写啊...

通渭县17574249848: 怎么在excel中编写随机组合 -
严陆倍松: 使用VBA较为方便. 复制如下代码到VBA模块中,运行.1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20Subaaa() 2: Dimi AsSingle Dimn1, n2, n3 Fori = 1 To3 1: n1 = Mid("ABCDEFGHI", Application.WorksheetFunction.RandBetween...

通渭县17574249848: 如何使用Excel找出两列相同值的VBA宏代码? -
严陆倍松: 以下的宏代码,其功能是,找到AB两列相同值,并存放到C列. Sub MySubSearch() Dim i As Integer Dim c As Range For i = 2 To Sheet1.[B65536].End(xlUp).Row For Each c In Sheet1.Range("A2:A" & Sheet1.[A65536].End(xlUp).Row) If ...

通渭县17574249848: 求一段VBA代码,实现excel中3个工作表筛选相同数据,谢谢 -
严陆倍松: 按alt +f11复制代码到代码区 Sub ABC() For x = 2 To 58 If Sheets("第一个表的名字").Range("F" & x) = "" Then Exit Sub For x1 = 2 To 58 If Sheets("第一个表的名字").Range("F" & x) = Sheets("第二个表的名字").Range("F...

通渭县17574249848: excel编写组合代码 -
严陆倍松: 给你一段vba代码 Sub 组合() Dim i, j, sum, r As Long Dim s(6), stemp As String Dim num(8) As Integer Dim k, l As Integer '利用2,o,e,v,8,v这几个数字跟字母输出2oev8v等720个组合 r = 1 s(1) = "2" s(2) = "o" s(3) = "e" s(4) = "v" s(5) = ...

通渭县17574249848: 如何在vb上做出字符串的重复循环的编码 -
严陆倍松: Asc 函数 返回一个 Integer,代表字符串知中首字母的字符代码. 语法 Asc(string) 必要的 string 参数可以是任何有效的字符串表达式道.如果 string 中没有包含任何字符,则会产生运行时错误. 说明 在非 DBCS 系统下,返回值范围为 0 – 255 .

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网