我正在尝试自动化一个在A和B列中都具有标题的Excel文件,并且我必须从B中的A中搜索每个单词。如果有任何单词匹配,那么我需要将其粘贴到可用的B列(C,D, ...)在同一行。
我正在使用下面的代码,为此,我将手动在A列标题的单独列中分离单词,然后在B列中进行搜索。
Dim a() As String
Dim b() As String
Dim aRng As Range
Dim cel As Range
Dim i As Integer, t As Integer, clm As Integer
Set aRng = Range(Range("KW1"), Range("KW1").End(xlDown))
For Each cel In aRng
a = Split(cel, " ")
b = Split(cel.Offset(, 1), " ")
clm = 2
For i = LBound(a) To UBound(a)
For t = LBound(b) To UBound(b)
If UCase(a(i)) = UCase(b(t)) Then
cel.Offset(, clm) = a(i)
clm = clm + 1
End If
Next
Next
Next
但是它会重复重复重复的单词(如果有的话)。有办法避免重复的单词吗?请帮帮我。
这实际上并不是最干净的方法,但是您可以通过从2的偏移量循环遍历每个填充的单元格,直到到达一个空的单元格,来检查它们。请注意,此代码未经测试。
For i = LBound(a) To UBound(a)
For t = LBound(b) To UBound(b)
If UCase(a(i)) = UCase(b(t)) Then
clm = 2
Do While True
If UCase(cel.Offset(, clm)) = UCase(a(i)) Then
Exit Do
End If
If cel.Offset(, clm) = "" Then
cel.Offset(, clm) = a(i)
Exit Do
End If
clm = clm + 1
Loop
End If
Next
Next
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句