Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.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
修改简单VBA脚本以考虑不同的匹配?_Vba_Excel - Fatal编程技术网

修改简单VBA脚本以考虑不同的匹配?

修改简单VBA脚本以考虑不同的匹配?,vba,excel,Vba,Excel,所以我使用这个函数: Sub Test() Dim NA As Long, NC As Long, v As String, I As Long, J As Long Dim v2 As String NA = Cells(Rows.Count, "A").End(xlUp).Row NC = Cells(Rows.Count, "C").End(xlUp).Row For I = 2 To NA v = LCase(Cells(I, "A

所以我使用这个函数:

Sub Test()
    Dim NA As Long, NC As Long, v As String, I As Long, J As Long
    Dim v2 As String
    NA = Cells(Rows.Count, "A").End(xlUp).Row
    NC = Cells(Rows.Count, "C").End(xlUp).Row
    For I = 2 To NA
        v = LCase(Cells(I, "A").Value)
        v2 = ""
        For J = 2 To NC
            If InStr(LCase(Cells(J, "C").Value), v) > 0 Then ' What to do here?
                v2 = v2 & ";" & Cells(J, "C").Value
            End If
        Next J
        Cells(I, "A").Offset(0, 1).Value = Mid(v2,2)
    Next I
End Sub
将一列图像名称与其在另一列中所属的项目相匹配。这非常有效,但有一种情况除外:

如果项目编号在项目名称中包含“-SET2”字符串,则文件名中没有SET2的图像将不会匹配。这会导致许多图像被忽略


如何解释项目名称中存在“-SET2”的可能性?

检查v末尾的-SET2,如果有,将其去掉

Sub Test()
    Dim NA As Long, NC As Long, v As String, I As Long, J As Long
    Dim v2 As String
    NA = Cells(Rows.count, "A").End(xlUp).Row
    NC = Cells(Rows.count, "C").End(xlUp).Row
    For I = 2 To NA
        v = LCase(Cells(I, "A").Value)

        'Check for -set2 on the end of v, if it is there, strip it out
        If Right(v, 5) = "-set2" Then
            v = Left(v, Len(v) - 5)
        End If

        v2 = ""
        For J = 2 To NC
            If InStr(LCase(Cells(J, "C").Value), v) > 0 Then ' What to do here?
                v2 = v2 & ";" & Cells(J, "C").Value
            End If
        Next J
        Cells(I, "A").Offset(0, 1).Value = Mid(v2, 2)
    Next I
End Sub

谢谢你的快速回答。不幸的是,它仍然没有正确匹配?是-SET2在A列还是C列?它在A列--我需要创建匹配,即使图像名称不包含“SET-2”,这有意义吗?因此,如果图像名称(都在C列)是MCR7009A-LEG.jpg,我需要它仍然与第AI列中的项目编号相匹配。所以我们需要去掉它的名字。让我修改一下。这正是我需要做的,只是让它匹配。