我的问题是宏不能在指定的工作表上工作,只能在活动工作表上工作。我有两个子程序用于删除整列,如果特定列为空,则删除整行。我想让它适用于特定的工作表,我理解为With Worksheets("OutPut")
但它仍然会剔除活动工作表。
只要选择了活动工作表,它就可以正常工作。
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
对于Call
这两个按钮都有一个按钮,如果我要转换的工作表处于活动状态,它将再次起作用。作为参考,这是为了附加在现有的公司宏上,因此只需在工作表上激活它就不起作用。
谢谢!
答案 0 :(得分:1)
对于第一个代码示例,
If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then
Columns(iCounter).Delete
应该是
If Application.CountA(.Columns(iCounter).EntireColumn) = 0 Then
.Columns(iCounter).Delete
(a"。"在列之前,指定工作表)
第二个代码示例
也是如此