[英]Excel VBA: Delete blank columns & entire rows if specific columns are blank on specific worksheet not working
我的問題是,宏將無法在指定的工作表上運行,只能在活動的工作表上運行。 我有兩個子例程,用於刪除整個列,然后在特定列為空的情況下刪除整個行。 我想使其適用於特定的工作表,據我With Worksheets("OutPut")
是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
它們的按鈕,如果要轉換的工作表處於活動狀態,它將再次起作用。 作為參考,它打算附加在現有的公司宏上,因此僅在工作表處於活動狀態時在工作表上運行它是行不通的。
謝謝!
對於第一個代碼示例,
If Application.CountA(Columns(iCounter).EntireColumn) = 0 Then
Columns(iCounter).Delete
應該
If Application.CountA(.Columns(iCounter).EntireColumn) = 0 Then
.Columns(iCounter).Delete
(在列之前的“。”,用於指定工作表)
第二個代碼示例也是如此
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.