基于单元格值包含文本部分的Excel VBA删除行

3

我希望根据单元格中包含“upg”或“upgrade”这些词的单元格值来删除行。当单元格中存在这些单词时,它们并不是唯一的单词。

这是我的代码的一部分,它没有删除任何内容:

Sub DeleteValues()


Dim i As Integer
Dim MFG_wb As Workbook
Dim Dep As Integer



Set MFG_wb = Workbooks.Open _
("C:\Users\rosipov\Desktop\eliran\MFG - GSS\MFG Daily\Fast Daily " & Format(Now(), "ddmmyy") & ".xlsx", _
UpdateLinks:=False, IgnoreReadOnlyRecommended:=True)
MFG_wb.Sheets("Aleris").Activate

Dep = MFG_wb.Sheets("Aleris").Range("B2").End(xlDown).Row


For i = Dep To 2 Step -1
    Cells(i, 2).Select
    If Not (Selection.Value = "& upg &" Or Selection.Value = "*& upgrade &*") Then
        Rows(i).Delete
    End If
Next i



End Sub

以下是问题:

For i = Dep To 2 Step -1
    Cells(i, 2).Select
    If Not (Selection.Value = "& upg &" Or Selection.Value = "*& upgrade &*") Then
        Rows(i).Delete
    End If
Next i
1个回答

5

使用INSTR()函数:

For i = Dep To 2 Step -1
     If Instr(MFG_wb.Sheets("Aleris").Cells(i, 2).Value,"upg")>0 Or Instr(MFG_wb.Sheets("Aleris").Cells(i, 2).Value,"upgrade") >0 Then
        MFG_wb.Sheets("Aleris").Rows(i).Delete
     End If
Next i

嘿,那个很好用!谢谢! 请问怎么使用超过两个值? - Rafael Osipov
我想要添加选项“Upg”、“UPGRADE”和“Upgrade”。 - Rafael Osipov
1
如果您已经检查了Upg,则无需检查升级。要检查任何大小写组合,可以使用UCase()将其转换为大写。首先检查Instr(UCase(MFG_wb.Sheets("Aleris").Cells(i, 2).Value),"UPG")>0或UCase(MFG_wb.Sheets("Aleris").Cells(i, 2).Value) like "UPG"。 - user500099

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接