如果单元格包含VBA / Excel中的特定值,如何从范围中删除列

蓝蛙

我正在尝试编写一些VBA,它将检查一系列列(行M到GD)中单元格的值,如果该单元格不包含“ YY”,则删除该列。

要检查的单元格始终在第22行中

我尝试了以下方法,但是速度很慢。

w = 186
Do
If Worksheets(“SOF”).Cells(22, w).Formula = "YY" Then
w = w - 1
Else
   Worksheets(“SOF”).Cells(22, w).EntireColumn.Delete
End If
w = w - 1
Loop Until w < 13

是否有人对如何加快此速度或解决此问题的更好方法有任何建议?

谢谢

悉达思·劳特

是否有人对如何加快此速度或解决此问题的更好方法有任何建议?

是的。不要删除循环中的列使用Union方法。这是一个例子。我已经注释了代码,因此您在理解它时不会遇到问题。如果您仍然这样做,则只需回发。

Option Explicit

Sub Sample()
    Dim ws As Worksheet
    Dim i As Long
    Dim delRange As Range

    '~~> Set this to the relevant worksheet
    Set ws = ThisWorkbook.Sheets("SOF")

    With ws
        '~~> Loop through relevant columns
        For i = 13 To 186
            '~~> Check if the value is equal to YY
            If UCase(Trim(.Cells(22, i).Value)) = "YY" Then
                '~~> Store the Range to delete later
                If delRange Is Nothing Then
                    Set delRange = .Columns(i)
                Else
                    Set delRange = Union(delRange, .Columns(i))
                End If
            End If
        Next i
    End With

    '~~> Delete the relevant columns in one go
    If Not delRange Is Nothing Then delRange.Delete
End Sub

只需眨眼即可执行,但如果需要,可以将代码夹在Application.ScreenUpdating = False之间Application.ScreenUpdating = True

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Excel VBA如果单元格包含文本则删除行

来自分类Dev

在VBA Excel中使用“如果单元格包含”

来自分类Dev

如何在excel vba中删除具有特定值的每个单元格?

来自分类Dev

如果在vba中包含特定字符串,如何遍历单元格并创建新行?

来自分类Dev

如果单元格包含特定值,则WPF DataGrid更改单元格背景

来自分类Dev

Excel VBA-搜索范围-如果单元格包含文本,则复制单元格-粘贴偏移量2,1

来自分类Dev

如果当前单元格在VBA中为空,则获取相邻单元格的值

来自分类Dev

删除Excel VBA中包含“ xxx”的(单元格的)单元格的优雅方法

来自分类Dev

如果单元格值包含列表中的值(通配符匹配),请从特定列检索数据

来自分类Dev

VBA:如何检查特定单元格是否包含图像,然后删除该图像(如果存在)

来自分类Dev

VBA Excel中的单元格范围

来自分类Dev

在VBA中,如果数组包含值,如何在数组上进行迭代并用1填充某些单元格;如果不包含,则如何填充0?

来自分类Dev

如果单元格包含该值,如何从范围中返回该值

来自分类Dev

如果单元格包含值,则VBA添加列

来自分类Dev

如果单元格包含该值,如何从范围中返回该值

来自分类Dev

如何在excel vba中删除具有特定值的每个单元格?

来自分类Dev

如果特定单元格包含特定文本,则VBA代码可重新复制多个单元格

来自分类Dev

如果每行的其他单元格包含特定值,如何求和单元格中的值?

来自分类Dev

如果在vba中包含特定字符串,如何遍历单元格并创建新行?

来自分类Dev

如果单元格包含特殊文本,如何删除单元格值

来自分类Dev

如果单元格包含值,则为“列标题”

来自分类Dev

如果Excel中包含值,如何计算单元格

来自分类Dev

如果特定列中的单元格包含数组字符串,如何从Excel文件中删除行?

来自分类Dev

VBA - 如果单元格包含指定值,如何隐藏行

来自分类Dev

Excel VBA / 如果单元格的值与参考单元格中的值不符,则删除单元格

来自分类Dev

如果列包含数据,则复制单元格 A,Excel VBA

来自分类Dev

VBA 循环:如果单元格包含特定值,则删除包含该值的行和接下来的 3 行

来自分类Dev

如果使用 Excel VBA 不满足条件,则编辑特定列中单元格的值

来自分类Dev

如果单元格包含值 VBA,则无法删除它们

Related 相关文章

  1. 1

    Excel VBA如果单元格包含文本则删除行

  2. 2

    在VBA Excel中使用“如果单元格包含”

  3. 3

    如何在excel vba中删除具有特定值的每个单元格?

  4. 4

    如果在vba中包含特定字符串,如何遍历单元格并创建新行?

  5. 5

    如果单元格包含特定值,则WPF DataGrid更改单元格背景

  6. 6

    Excel VBA-搜索范围-如果单元格包含文本,则复制单元格-粘贴偏移量2,1

  7. 7

    如果当前单元格在VBA中为空,则获取相邻单元格的值

  8. 8

    删除Excel VBA中包含“ xxx”的(单元格的)单元格的优雅方法

  9. 9

    如果单元格值包含列表中的值(通配符匹配),请从特定列检索数据

  10. 10

    VBA:如何检查特定单元格是否包含图像,然后删除该图像(如果存在)

  11. 11

    VBA Excel中的单元格范围

  12. 12

    在VBA中,如果数组包含值,如何在数组上进行迭代并用1填充某些单元格;如果不包含,则如何填充0?

  13. 13

    如果单元格包含该值,如何从范围中返回该值

  14. 14

    如果单元格包含值,则VBA添加列

  15. 15

    如果单元格包含该值,如何从范围中返回该值

  16. 16

    如何在excel vba中删除具有特定值的每个单元格?

  17. 17

    如果特定单元格包含特定文本,则VBA代码可重新复制多个单元格

  18. 18

    如果每行的其他单元格包含特定值,如何求和单元格中的值?

  19. 19

    如果在vba中包含特定字符串,如何遍历单元格并创建新行?

  20. 20

    如果单元格包含特殊文本,如何删除单元格值

  21. 21

    如果单元格包含值,则为“列标题”

  22. 22

    如果Excel中包含值,如何计算单元格

  23. 23

    如果特定列中的单元格包含数组字符串,如何从Excel文件中删除行?

  24. 24

    VBA - 如果单元格包含指定值,如何隐藏行

  25. 25

    Excel VBA / 如果单元格的值与参考单元格中的值不符,则删除单元格

  26. 26

    如果列包含数据,则复制单元格 A,Excel VBA

  27. 27

    VBA 循环:如果单元格包含特定值,则删除包含该值的行和接下来的 3 行

  28. 28

    如果使用 Excel VBA 不满足条件,则编辑特定列中单元格的值

  29. 29

    如果单元格包含值 VBA,则无法删除它们

热门标签

归档