我正在處理 Excel 中的一個宏,它將隱藏任何空的列。但是,它們并不完全是空的,因為我希望標題仍然存在。例如,標題位于第 3 行。因此,對于 A 列,如果范圍內沒有資料(“A4:A”和 rng),我希望隱藏 A 列,rng 是最后一行。我能夠成功地為 A 列撰寫代碼,從技術上講,我可以為電子表格中的每一行撰寫此代碼,但它從 A 列到 AU。那將是很多代碼。必須有一種方法可以遍歷每一列,并根據它們從第 4 行到最后一行的范圍隱藏該列。請告訴我!
這是我正確作業的 A 列的代碼。它遍歷 A 列中的每個單元格,如果它們都是空的,則 cellsEmpty 為 True 并且該列被隱藏。如果任何單元格中有資料,則 cellsEmpty 為 False,我們退出 For。如何回圈遍歷每一列并將此代碼應用于每一列?
Sub hideEmptyColumns()
rng = WorksheetFunction.CountA(Worksheets("Sheet1").Range("A1:A1000")) 2
' 2 because of the top 2 blank rows
Dim i As Range
Dim cellsEmpty As Boolean
cellsEmpty = True
Application.ScreenUpdating = False
For Each i In Range("A4:A" & rng)
If i.Value <> "" Then
cellsEmpty = False
Exit For
End If
Next
If cellsEmpty = True Then
Columns("A").Hidden = True
End If
Application.ScreenUpdating = True
End Sub
uj5u.com熱心網友回復:
回圈遍歷每一列并獲取最后一行,如果小于或等于 3 則隱藏。
Dim lc As Long
Dim lr As Long
Dim i As Long
With Sheets("Sheet1")
lc = .Cells(3, .Columns.Count).End(xlToLeft).Column
For i = 1 To lc
lr = .Cells(.Rows.Count, i).End(xlUp).Row
If lr <= 3 Then
Columns(i).Hidden = True
End If
Next i
End With
轉載請註明出處,本文鏈接:https://www.uj5u.com/shujuku/409591.html
標籤:
上一篇:如何使用Pandas將一個Excel檔案中的兩列復制到一個新檔案中
下一篇:條件>0的VBA總和值
