使用通配符替换文本

时间:2015-09-27 08:38:39

标签: excel wildcard

我有一个包含数千行产品详细信息的电子表格。在一列大小上,单元格具有此类值:

  

; XXS(缺货); XS; S(缺货); M(缺货); L; XL;

我需要删除缺货的值,所以我按Ctrl + F并替换“; *(缺货);”通过“;”但是它取而代之的不是下一个分号而是第一个分号。

所以

  

; XXS(缺货); XS; S(缺货); M(缺货); L; XL;

成为

  

,L; XL;

如何使用通配符获取结果,例如:

  

XS; L,XL;

1 个答案:

答案 0 :(得分:0)

如果您的'尺寸列'是A列,数据从第2行开始,则运行此例程。

Sub del_Out_of_Stock()
    Dim rw As Long, str As String, str2 As String, v As Long, vSZs As Variant

    str = "(out of stock)"
    With Worksheets("Sheet1")
        For rw = 2 To .Cells(Rows.Count, 1).End(xlUp).Row
            With .Cells(rw, 1)
                vSZs = Split(.Value2, Chr(59))
                For v = LBound(vSZs) To UBound(vSZs)
                    If CBool(InStr(1, vSZs(v), str, vbTextCompare)) Then _
                        vSZs(v) = vbNullString
                Next v
                str2 = Join(vSZs, Chr(59))
                Do While CBool(InStr(1, str2, Chr(59) & Chr(59))): str2 = Replace(str2, Chr(59) & Chr(59), Chr(59)): Loop
                .Value = str2
            End With
        Next rw
    End With
End Sub

您可能需要a)更改工作表名称,b)更改列索引编号,并可能c)更改起始行。