【问题标题】:VBA - Error 13 - select case - Text "*xxx*"VBA - 错误 13 - 选择大小写 - 文本“*xxx*”
【发布时间】:2021-09-24 15:21:03
【问题描述】:

我尝试删除 B 列中不包含特定类型单词的行,但它可以包含单词前后的所有内容。

Select Case Range("B7:B1048576").Value
    Case "*Transpalette*"
        'do nothing
    Case Else
        Selection.EntireRow.Delete
End Select

【问题讨论】:

  • 您将需要迭代,您不能针对范围数组测试单个值。使用过滤器过滤掉包含然后删除可见行的行会更快。仅在这个网站上就有很多关于如何做到这一点的示例。
  • 除了 Scott Craner 提到的之外,您还需要修改您的 case 语句以正确处理通配符,因为它们评估为布尔值。 stackoverflow.com/questions/18409418/…
  • 如何标记已解决?

标签: vba


【解决方案1】:
Sub Test()
Dim i As Long, Lastrow As Long

Lastrow = Cells(Rows.Count, 1).End(xlUp).Row
For i = Lastrow To 2 Step -1
Select Case True
    Case ActiveSheet.Range("B" & i).Value Like "*Transpalette*"
    Case Else
    ActiveSheet.Range("B" & i).EntireRow.Delete
End Select
Next i
End Sub

希望以上代码能解决您的问题

【讨论】:

  • 您的答案可以通过额外的支持信息得到改进。请edit 添加更多详细信息,例如引用或文档,以便其他人可以确认您的答案是正确的。你可以找到更多关于如何写好答案的信息in the help center
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2013-08-26
  • 2020-06-13
  • 2013-06-18
  • 2020-01-29
  • 1970-01-01
  • 2019-01-31
  • 2016-10-28
相关资源
最近更新 更多