首页 > 解决方案 > vba 如果单元格不等于值,则删除

问题描述

我对 VBA 很陌生,我似乎无法通过谷歌弄清楚这一点。

我正在尝试遍历工作表并使用 If 语句根据它们的第 1 行值删除不必要的列。我正在尝试这样做:

    Sub Macro1
    Dim cell As Range
    For Each cell In Rows("1")
    If cell.Value <>  "order_number", "tax_details", "etc"
    Then .EntireColumn.delete
    End Sub

但我似乎不知道如何使用具有多个值的“If cell.Value”语句,也不知道如何删除我不想要的列。任何帮助深表感谢。

干杯,

贾斯汀

编辑:感谢所有的回复,一切都非常有帮助。解决了这个问题,我学到了很多东西。

标签: vbaexcelif-statement

解决方案


你很亲密。

  1. 您的For循环必须以Next语句结束
  2. Then必须与你在同一行出现If才有效,并且应该用一个结束End If(除非你做一个单行)
  3. 您必须分开测试您的AND条件
  4. Cell在这里已经是一个关键字( a 的子类Range),所以将该变量更改为rngCell或不同的东西。
  5. Rows("1")作为一个显式范围会更好,否则它将逐字逐句遍历该行中的每一列。这是很多列。

Sub Macro1
    Dim rngCell As Range
    For Each rngCell In Range("A1:GZ1").Cells
        If rngCell.Value <>  "order_number" And rngCell.Value <>  "tax_details" AND rngCell.Value <> "etc" Then 
             rngCell.EntireColumn.delete
        End If
    Next cell
End Sub

推荐阅读