我有一个包含数千行产品详细信息的电子表格。在一列大小上,单元格具有此类值:
; XXS(缺货); XS; S(缺货); M(缺货); L; XL;
我需要删除缺货的值,所以我按Ctrl + F并替换“; *(缺货);”通过“;”但是它取而代之的不是下一个分号而是第一个分号。
所以
; XXS(缺货); XS; S(缺货); M(缺货); L; XL;
成为
,L; XL;
如何使用通配符获取结果,例如:
XS; L,XL;
答案 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)更改起始行。