VBA:联合函数无法删除不连续的列

VBA:联合函数无法删除不连续的列

使用 UNION 函数,下面的代码应该删除指定列 B、D 和 F 的整列。

我选择 UNION 函数是因为几个 SE 帖子建议 UNION FUNCTION 是选择不连续列的最有效方法。

我认为通过“SET”定义范围我已经正确地声明了要删除的特定列。

代码在工作表上运行没有错误,数据在“A”到“M”行,但未删除任何列。

感谢您花时间帮助我!

    Sub Union_Function_del_NonContig_Cols()


Dim wb As Workbook

Set wb = ActiveWorkbook

Dim R1, R2, R3, R4 As Range

  Set R1 = wb.Sheets(1).Range("B:B")
  Set R2 = wb.Sheets(1).Range("D:D")
  Set R3 = wb.Sheets(1).Range("F:F")

Range("R1:R3").EntireColumn.Delete

 End Sub

答案1

您的代码稍加修改即可使用以下 VBA 代码删除多列。

Sub Union_Function_del_NonContig_Cols()

Dim rng1 As Range, rng2 As Range, rngUnion As Range

Set rng1 = ActiveWorkbook.Worksheets("Sheet1").Range("A:A")
Set rng2 = ActiveWorkbook.Worksheets("Sheet1").Range("C:C")

Set rngUnion = Union(rng1, rng2)
rngUnion.Columns.Delete

End Sub

注意: 在上面的代码中,工作表和列名称是可编辑的。

相关内容