Excel VBA连续单元格的部分匹配(值/字符串)
我正在努力与部分匹配,其想法是在每一行添加一条评论,如果有一个匹配或与下面的行不匹配,结果应如下图所示 我的斗争是部分匹配的部分,B4值为“87032610”和B5“付款87032610”的ex,我想要的结果是C4列和C5列“部分匹配”中的txt 到目前为止,我的代码:Excel VBA连续单元格的部分匹配(值/字符串),excel,vba,Excel,Vba,我正在努力与部分匹配,其想法是在每一行添加一条评论,如果有一个匹配或与下面的行不匹配,结果应如下图所示 我的斗争是部分匹配的部分,B4值为“87032610”和B5“付款87032610”的ex,我想要的结果是C4列和C5列“部分匹配”中的txt 到目前为止,我的代码: Sub testRes() Dim i As Integer i = 2 Do While ThisWorkbook.Worksheets("test").cells(i, 1) <> &q
Sub testRes()
Dim i As Integer
i = 2
Do While ThisWorkbook.Worksheets("test").cells(i, 1) <> ""
If ThisWorkbook.Sheets("test").cells(i, 1) Like "*" & ThisWorkbook.Sheets("test").cells(i + 1, 1) Then
ThisWorkbook.Sheets("test").cells(i, 1).Offset(0, 1).Value = "Yes"
ThisWorkbook.Sheets("test").cells(i + 1, 1).Offset(0, 1).Value = "Yes"
Else
ThisWorkbook.Sheets("test").cells(i, 1).Offset(0, 1).Value = "No"
ThisWorkbook.Sheets("test").cells(i + 1, 1).Offset(0, 1).Value = "No"
End If
i = i + 1
Loop
End Sub
subtestres()
作为整数的Dim i
i=2
执行此工作簿。工作表(“测试”)。单元格(i,1)”
如果ThisWorkbook.Sheets(“test”).cells(i,1)像“*”&ThisWorkbook.Sheets(“test”).cells(i+1,1),那么
ThisWorkbook.Sheets(“test”).cells(i,1).Offset(0,1).Value=“是”
ThisWorkbook.Sheets(“test”).cells(i+1,1).Offset(0,1).Value=“是”
其他的
ThisWorkbook.Sheets(“test”).cells(i,1).Offset(0,1).Value=“否”
ThisWorkbook.Sheets(“test”).cells(i+1,1).Offset(0,1).Value=“否”
如果结束
i=i+1
环
端接头
谢谢:-)根据发票号检查可变付款文本 使用VBA在数组中循环比在单元格中循环花费的时间更少。为了检查部分结果,只需更改
的方向,如
比较(通过周围的通配符*
完成),因为发票号所代表的部分小于可变支付文本(商业客户)
subtestres()
“[0]获取基于变体1的2维数据字段数组
变暗rng As范围
Set rng=Sheet1.Range(“B2:B9”)'谢谢您,我更改了您的代码,对我来说效果很好,谢谢
Sub testRes()
'[0]get variant 1-based 2-dim data field array
Dim rng As Range
Set rng = Sheet1.Range("B2:B9") ' << change to wanted range reference
Dim v
v = rng.Value
'[1]check invoice number against changing payment texts
Dim i As Long
Dim invoice, pmt
For i = 1 To UBound(v) - 1 Step 2
invoice = v(i, 1)
pmt = v(i + 1, 1)
If invoice = pmt Then
v(i, 1) = "Yes"
ElseIf pmt Like "*" & invoice & "*" Then
v(i, 1) = "Part Match"
Else
v(i, 1) = "No"
End If
v(i + 1, 1) = v(i, 1)
Next i
'[2]write results
rng.Offset(0, 1) = v
End Sub