Excel VBA:如果特定工作表上的特定列空白,则删除空白列和整行
我的问题是macros不能在指定的工作表,只有活动的工作表。 我有两个子例程删除整个列,然后删除整行,如果特定的列是空白的。 我想让它适用于一个特定的工作表,我的理解是With Worksheets("OutPut")
但它仍然拣选活动工作表。
只要select活动工作表,它就可以按预期工作。
Sub DeleteBlankColumns() With Worksheets("OutPut") Set MyRange = Worksheets("OutPut").UsedRange For iCounter = MyRange.Columns.Count To 1 Step -1 If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then Columns(iCounter).Delete End If Next iCounter End With End Sub
和
Sub QuickCull() With Worksheets("OutPut") On Error Resume Next Columns("B").SpecialCells(xlBlanks).EntireRow.Delete On Error Resume Next Columns("C").SpecialCells(xlBlanks).EntireRow.Delete On Error Resume Next Columns("D").SpecialCells(xlBlanks).EntireRow.Delete On Error Resume Next Columns("E").SpecialCells(xlBlanks).EntireRow.Delete End With End Sub
有一个button可以Call
它们,如果我想要转换的工作表是活动的,那么这个button也可以工作。 作为参考,这是打算附加在现有的公司macros,所以只是简单地在工作表上运行时,它是活跃的将无法正常工作。
谢谢!
对于第一个代码示例,
If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then Columns(iCounter).Delete
应该
If Application.CountA(.Columns(iCounter).EntireColumn) = 0 Then .Columns(iCounter).Delete
(列之前的“。”,指定表单)
第二个代码示例是一样的