Vba 删除与我想要的相反的内容
我不知道我错在哪里。如果这两个都是真的,我希望这段代码什么都不做。如果颜色为真,我希望它删除该行。请告诉我怎么了Vba 删除与我想要的相反的内容,vba,excel,Vba,Excel,我不知道我错在哪里。如果这两个都是真的,我希望这段代码什么都不做。如果颜色为真,我希望它删除该行。请告诉我怎么了 For lngRow = lngRows To 2 Step -1 If ActiveWorkbook.Worksheets("Sheet1").Cells(lngRow, "E").DisplayFormat.Interior.ColorIndex = 38 _ And InStr(1, Range("N" & lngRow), LCase("po
For lngRow = lngRows To 2 Step -1
If ActiveWorkbook.Worksheets("Sheet1").Cells(lngRow, "E").DisplayFormat.Interior.ColorIndex = 38 _
And InStr(1, Range("N" & lngRow), LCase("po box") > 0) Then
Else:
ActiveWorkbook.Worksheets("Sheet1").Rows(lngRow).EntireRow.Delete
End If
Next
我觉得我需要另一个If语句还是什么?我试过很多不同的版本,但我都没有。提前谢谢你的帮助
我加了这张照片。如果这能更好地解释的话。我只需要用邮政信箱着色的行。还有那些根本没有着色的行,它们中的大多数都没有被描绘出来。(这都是假的信息)
在我看来,这可能是
指令的括号位置。也许它应该是InStr(1,范围(“N”)和lngRow),LCase(“邮箱”)>0
?
如果不是,我建议使用:
If Not (ActiveWorkbook.Worksheets("Sheet1").Cells(lngRow, "E").DisplayFormat.Interior.ColorIndex = 38 & _
And InStr(1, Range("N" & lngRow), LCase("po box")) > 0) Then 'check your parenthesis here
ActiveWorkbook.Worksheets("Sheet1").Rows(lngRow).EntireRow.Delete
End If
在我看来,这可能是Instr
的括号位置。也许它应该是InStr(1,范围(“N”)和lngRow),LCase(“邮箱”)>0
?
如果不是,我建议使用:
If Not (ActiveWorkbook.Worksheets("Sheet1").Cells(lngRow, "E").DisplayFormat.Interior.ColorIndex = 38 & _
And InStr(1, Range("N" & lngRow), LCase("po box")) > 0) Then 'check your parenthesis here
ActiveWorkbook.Worksheets("Sheet1").Rows(lngRow).EntireRow.Delete
End If
要仅删除带颜色但不包含“邮政信箱”的行,请使用
注意:在一个不全是小写的字符串中搜索LCase
版本的“po-box”(已经全部是小写)也会给您带来问题。您应该在单元格的LCase
版本中检查“邮政信箱”。若要仅删除有颜色但不包含“邮政信箱”的行,请使用
注意:在一个不全是小写的字符串中搜索LCase
版本的“po-box”(已经全部是小写)也会给您带来问题。您应该在单元格的LCase
版本中检查“po-box”。我认为两列。自动筛选更合适
Dim lngRows As Long
lngRows = 6
With Worksheets("sheet4")
If .AutoFilterMode Then .AutoFilterMode = False
With .Range("E1:N" & lngRows)
.AutoFilter Field:=1, Criteria1:=RGB(255, 153, 204), Operator:=xlFilterCellColor
.AutoFilter Field:=10, Criteria1:="<>*po box*"
With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
If CBool(.Application.Subtotal(103, .Cells)) Then
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End If
End With
End With
If .AutoFilterMode Then .AutoFilterMode = False
End With
Dim lng的长度与
Ln=6
带工作表(“表4”)
如果.AutoFilterMode,则.AutoFilterMode=False
带.Range(“E1:N”和lng)
.AutoFilter字段:=1,准则1:=RGB(255、153、204),运算符:=xlFilterCellColor
.自动筛选字段:=10,标准1:=“*采购订单箱*”
使用.Resize(.Rows.Count-1、.Columns.Count).Offset(1,0)
如果是CBool(.Application.Subtotal(103.Cells)),则
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
如果结束
以
以
如果.AutoFilterMode,则.AutoFilterMode=False
以
我认为两列自动筛选更合适
Dim lngRows As Long
lngRows = 6
With Worksheets("sheet4")
If .AutoFilterMode Then .AutoFilterMode = False
With .Range("E1:N" & lngRows)
.AutoFilter Field:=1, Criteria1:=RGB(255, 153, 204), Operator:=xlFilterCellColor
.AutoFilter Field:=10, Criteria1:="<>*po box*"
With .Resize(.Rows.Count - 1, .Columns.Count).Offset(1, 0)
If CBool(.Application.Subtotal(103, .Cells)) Then
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
End If
End With
End With
If .AutoFilterMode Then .AutoFilterMode = False
End With
Dim lng的长度与
Ln=6
带工作表(“表4”)
如果.AutoFilterMode,则.AutoFilterMode=False
带.Range(“E1:N”和lng)
.AutoFilter字段:=1,准则1:=RGB(255、153、204),运算符:=xlFilterCellColor
.自动筛选字段:=10,标准1:=“*采购订单箱*”
使用.Resize(.Rows.Count-1、.Columns.Count).Offset(1,0)
如果是CBool(.Application.Subtotal(103.Cells)),则
.SpecialCells(xlCellTypeVisible).EntireRow.Delete
如果结束
以
以
如果.AutoFilterMode,则.AutoFilterMode=False
以
和InStr(1,Range(“N”和lngRow),LCase(“po-box”)>0
应该是和InStr(1,Range(“N”和lngRow),LCase(“po-box”)>0
你在问题中说,如果两者都是真的话,你希望它什么都不做,但是对答案的一个注释(“我只需要在颜色为真但po-box不存在的情况下删除它。”)当一个为True
而另一个为False
时,使其听起来像是您实际希望它做某事。请澄清。编辑后,听起来您想删除带颜色但不包含“采购订单箱”的行。是吗?是的,也许我没有解释清楚。这两样东西我都需要。我在我的问题中添加了一幅图片,可以更好地解释它。它应该将带有PO Box的行保留在D列,并保留其他未着色的行。它应该只删除有颜色且其中没有邮政信箱的行。是的。有颜色但没有邮政信箱的行需要删除:)和InStr(1,范围(“N”)和lngRow),LCase(“邮政信箱”)>0
应该是和InStr(1,范围(“N”)和lngRow),LCase(“邮政信箱”))>0
您在问题中说,如果两者都为真,您希望它什么也不做,但是对答案的注释(“只有当颜色为真,但邮箱不存在时,我才需要删除它。”)当一个为True
而另一个为False
时,使其听起来像是您确实希望它执行某些操作。请澄清。编辑后,听起来像是您要删除带颜色但不包含“po”框的行“.是吗?是的,也许我没有解释清楚。这两样东西我都需要。我在我的问题中添加了一幅图片,可以更好地解释它。它应该将带有PO Box的行保留在D列,并保留其他未着色的行。它应该只删除有颜色和颜色的行“我没有邮箱,是的。你不想要&
,否则它会创建一个字符串TRUETRUE
,只是
@ScottCraner你的意思是&在范围内吗?不,在你的第一行末尾,如果你有&
删除&
@victorK啊,是的,我想他把它放进去了。另外,维克多,如果你看到这个,我喜欢它的工作原理,我想,但我也需要它不要删除,如果两者都不是真的。我需要它删除只有当颜色是真的,但邮政信箱不存在。我认为代码也会删除所有不带颜色的内容。你不想要&
或者它会创建一个字符串TRUETRUE
只是
@ScottCraner你是说&在范围内吗?不,在你的第一行末尾,如果你有&
移除&
@victorK啊,是的,我想他把它放进去了。另外,维克多,如果你看到这个,我喜欢它的工作原理,我想,但我也需要它不要删除,如果两者都不是真的。我只需要删除它