如果只存在一种值,则vba删除列

时间:2018-05-13 23:30:51

标签: excel-vba multiple-columns repeat vba excel

如果该列中的所有值都相同或为空,我需要编写一个代码来删除整个列。

在下面的示例中,我需要删除“Amount”列。 什么是VBA代码才能做到这一点?

example

1 个答案:

答案 0 :(得分:0)

如果我正确地理解你,这是一种做法。

Sub deleteColumn()
  Dim r As Range, c As Range, Col As Collection
  On Error GoTo errTrap
  Set r = ActiveSheet.Range("A2:A15") '<<=== exclude heading, chg to suit
  Set r = r.SpecialCells(xlCellTypeConstants)
  Set Col = New Collection
  For Each c In r
    Col.Add c.Value, CStr(c.Value)
  Next c
  Exit Sub
errTrap:
  Select Case Err
    Case 1004, 457 'all blanks, or duplicate found
      r.EntireColumn.Delete
  End Select
End Sub