修改简单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列中的项目编号相匹配。所以我们需要去掉它的名字。让我修改一下。这正是我需要做的,只是让它匹配。