使用 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
注意: 在上面的代码中,工作表和列名称是可编辑的。