Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/excel/26.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel VBA连续单元格的部分匹配(值/字符串)_Excel_Vba - Fatal编程技术网

Excel VBA连续单元格的部分匹配(值/字符串)

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

我正在努力与部分匹配,其想法是在每一行添加一条评论,如果有一个匹配或与下面的行不匹配,结果应如下图所示

我的斗争是部分匹配的部分,B4值为“87032610”和B5“付款87032610”的ex,我想要的结果是C4列和C5列“部分匹配”中的txt

到目前为止,我的代码:

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