gpt4 book ai didi

excel - 从 Col1 和 Col2 中的文本写入 Col3 中的不匹配数据

转载 作者:行者123 更新时间:2023-12-04 22:26:28 25 4
gpt4 key购买 nike

我有两组数据,一组是带有修订版的零件编号列表( 一些没有修订版 )和相同零件的未修订列表。多年来,这些都是由管理员手动输入的,现在我需要创建一组数据,即 Part Number, Revision。

由于过去发生的任何疯狂行为,修订版可能会出现在零件编号的随机点上,每次我这么说我都会感到不寒而栗!

因此,我需要一次将字符串 1 与字符串 2 比较一个字母,并用差异填充一个临时字符串。字符串 1 将带有修订,字符串 2 将没有,并且由于人为错误,字符串 2 可能不仅仅是省略了修订,因此需要显示这些以供手动检查。

我发现了一些很接近的东西,但是我对 VBA 的理解不足以让我进步。

Function WORDDIF(rngA As Range, rngB As Range) As String

Dim WordsA As Variant, WordsB As Variant
Dim ndxA As Long, ndxB As Long, strTemp As String

WordsA = Split(rngA.Text, " ")
WordsB = Split(rngB.Text, " ")

For ndxB = LBound(WordsB) To UBound(WordsB)
For ndxA = LBound(WordsA) To UBound(WordsA)
If StrComp(WordsA(ndxA), WordsB(ndxB), vbTextCompare) = 0 Then
WordsA(ndxA) = vbNullString
Exit For
End If
Next ndxA
Next ndxB

For ndxA = LBound(WordsA) To UBound(WordsA)
If WordsA(ndxA) <> vbNullString Then strTemp = strTemp & WordsA(ndxA) & " "
Next ndxA

WORDDIF = Trim(strTemp)

End Function

我希望看到比较字符串中的每个字母,一旦在字符串 2 中发现不匹配,修订字符串就会填充该不匹配。比较将继续在字符串 1 上的同一个字母上进行,直到在字符串 2 中找到匹配项。例如:
String 1 = 123-2A3-456
String 2 = 123-23-456
Revision = A

String 1 = 123-2A3-456
String 2 = 123-23-46
Revision = A5

最佳答案

像这样的东西?

Function WORDDIF(rngA As Range, rngB As Range) As String

Dim WordsA As Variant, WordsB As Variant
Dim ndxA As Long, ndxB As Long, strTemp As String

Dim a As Integer
Dim b As Integer

a = Len(rngA.Text)
b = 1
txt = ""

For i = 1 To a

If Mid(rngA.Text, i, 1) = Mid(rngB.Text, b, 1) Then
b = b + 1
Else
txt = txt & Mid(rngA.Text, i, 1)
End If

Next


WORDDIF = txt

End Function

演示:

enter image description here

注:它只会将第一个字符串与第二个字符串进行比较,没有反之亦然。如果这是您可以相应地操作当前代码的要求。

关于excel - 从 Col1 和 Col2 中的文本写入 Col3 中的不匹配数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57457333/

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