gpt4 book ai didi

string - 比较excel vba中的字符串

转载 作者:行者123 更新时间:2023-12-04 21:13:03 24 4
gpt4 key购买 nike

我有一堆由字符“A”,“B”...“Z”(没有其他)组成的字符串。一个典型的字符串看起来像 ABZYC .字符串成对提供给我,例如 ABC , ABDC .如果一个字符串包含在另一个字符串中,则这些字符串是可比较的(即两个字符串中的一个包含另一个字符串的所有字母)。字符串出现的顺序无关紧要。

excel vba中是否有任何直接功能可以进行这种比较?

例子:ACBD , AC - MatchACBD , CA - MatchACBD , ADB - MatchAC , ABCD - MatchABC , ABD - No Match

最佳答案

在工作簿的模块中添加以下函数:

Function allIn(str1, str2)
' check whether all elements of str1 occur in str2
' and vice versa
Dim l1, l2, ii As Integer
Dim isfound As Boolean

isfound = True

l1 = Len(str1)
l2 = Len(str2)

If l1 < l2 Then
' look for all the elements of str1 in str2
For ii = 1 To l1
If InStr(1, str2, Mid(str1, ii, 1), vbTextCompare) <= 0 Then
isfound = False
Exit For
End If
Next ii
Else
' look for all the elements of str2 in str1
For ii = 1 To l2
If InStr(1, str1, Mid(str2, ii, 1), vbTextCompare) <= 0 Then
isfound = False
Exit For
End If
Next ii
End If
allIn = isfound
End Function
现在您可以在代码中的其他位置调用它,使用 result = inStr("ABD", "BAD") - 或从电子表格本身。在电子表格中输入 =allIn(A3, B6)比较单元格中的字符串 A3B6 .
这是我这样做时发生的情况(我在单元格 =allIn(A1, B1) 中输入 C1,然后将公式拖到接下来的四行):
screen shot of spreadsheet
我相信这可以解决您的问题。
编辑:我刚刚注意到@Philip 对您的问题的评论 - 我似乎已经实现了他的建议,尽管我在开始编写它时没有看到它......但这里仍然是一个小技巧!

关于string - 比较excel vba中的字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15365250/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com