我在这个帖子中找到了下面的代码(Excel - 筛选行时有没有办法自动隐藏空列?) 隐藏了只有标题但没有数据的列。对于我所做的工作来说,它工作得很好,但它只处理一个工作表,而我需要它处理整个工作簿。
希望这是一个简单的改变,但我对此很陌生 - 有人可以修改下面的内容吗?
Sub KolumnHider()
Dim wf As WorksheetFunction
Dim i As Long, r As Range
Set wf = Application.WorksheetFunction
For i = 1 To 1000
Set r = Cells(1, i).EntireColumn
If wf.CountA(r) < 2 Then r.Hidden = True
Next i
End Sub
谢谢,伊万
答案1
尝试一些类似的事情
Dim wf As WorksheetFunction
Dim i As Long, r As Range
Dim sh as Worksheet
Set wf = Application.WorksheetFunction
For Each sh in ActiveWorkbook.Worksheets
For i = 1 To 1000
Set r = sh.Cells(1, i).EntireColumn
If wf.CountA(r) < 2 Then r.Hidden = True
Next i
Next
此外,我会将该代码中的“1000”替换为
sh.Cells.SpecialCells(xlCellTypeLastCell).Column
使代码循环遍历所需的精确列数,而不仅仅是 1000,因为 1000 可能太多或太少。