Note: The other languages of the website are Google-translated. Back to English

如果列中有空白單元格,如何自動隱藏行?

現在,如果您擁有一系列填充一列中某些空白單元格的數據,那麼您想自動隱藏包含該列中空白單元格的行。 有什麼好方法可以快速,輕鬆地在Excel中解決此工作?

如果具有VBA代碼的列中的空白單元格,則自動隱藏行


箭頭藍色右氣泡 如果具有VBA代碼的列中的空白單元格,則自動隱藏行

如果特定列中的空白單元格一次出現,以下代碼可以幫助您隱藏所有行;如果刪除該列中的單元格內容,行也將自動隱藏。 請執行以下操作:

1。 如果某列中有空白單元格,請在要自動隱藏行的工作表選項卡上單擊鼠標右鍵,然後選擇 查看代碼 從上下文菜單中,彈出 Microsoft Visual Basic for Applications 窗口,請複制以下代碼並將其粘貼到空白處 模塊:

VBA代碼:如果列中的空白單元格,則自動隱藏行:

Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("A1:A20")
            If xRg.Value = "" Then
                xRg.EntireRow.Hidden = True
        
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub

doc自動隱藏第1行

備註:在上面的代碼中, A1:A20 是數據列表,其中包含您要自動隱藏的空白單元格。

2。 然後返回工作表,現在,當您雙擊任何單元格並按 Enter 鍵,包含在A列中空白單元格的行已被立即隱藏,如果您清除了A列的指定單元格中的任何單元格內容,則這些行將自動隱藏。

doc自動隱藏第2行

 


最佳辦公效率工具

Kutools for Excel 解決了你的大部分問題,並將你的生產力提高了 80%

  • 重用: 快速插入 複雜的公式,圖表 以及您以前使用過的任何東西; 加密單元 帶密碼 創建郵件列表 並發送電子郵件...
  • 超級公式欄 (輕鬆編輯多行文本和公式); 閱讀版式 (輕鬆讀取和編輯大量單元格); 粘貼到過濾範圍...
  • 合併單元格/行/列 不會丟失數據; 拆分單元格內容; 合併重複的行/列...防止細胞重複; 比較範圍...
  • 選擇重複或唯一 行; 選擇空白行 (所有單元格都是空的); 超級查找和模糊查找 在許多工作簿中; 隨機選擇...
  • 確切的副本 多個單元格,無需更改公式參考; 自動創建參考 到多張紙; 插入項目符號,複選框等...
  • 提取文字,添加文本,按位置刪除, 刪除空間; 創建和打印分頁小計; 在單元格內容和註釋之間轉換...
  • 超級濾鏡 (將過濾方案保存並應用於其他工作表); 高級排序 按月/週/日,頻率及更多; 特殊過濾器 用粗體,斜體...
  • 結合工作簿和工作表; 根據關鍵列合併表; 將數據分割成多個工作表; 批量轉換xls,xlsx和PDF...
  • 超過 300 項強大的功能. 支持 Office / Excel 2007-2021 和 365。支持所有語言。 在您的企業或組織中輕鬆部署。 完整功能 30 天免費試用。 60 天退款保證。
kte選項卡201905

Office選項卡為Office帶來了選項卡式界面,使您的工作更加輕鬆

  • 在Word,Excel,PowerPoint中啟用選項卡式編輯和閱讀,發布者,Access,Visio和Project。
  • 在同一窗口的新選項卡中而不是在新窗口中打開並創建多個文檔。
  • 將您的工作效率提高 50%,每天為您減少數百次鼠標點擊!
officetab底部

 

按評論排序
留言 (32)
還沒有評分。 成為第一位評論!
網站主持人對此評論進行了最小化
嗨,我正在使用 excel 2016,但它無法正常工作。 我收到一條 sintax 錯誤消息。 你能幫我嗎?
網站主持人對此評論進行了最小化
你好,螞蟻,

上面的代碼在我的 Excel 2016 中運行良好,您是否根據需要更改了代碼中的單元格引用?
網站主持人對此評論進行了最小化
我收到運行時錯誤“13”:



類型不匹配



誰能幫忙???
網站主持人對此評論進行了最小化
按回車後我可以阻止這個宏自動運行嗎? 我可以將它附加到按鈕上以僅在單擊時隱藏單元格嗎?
網站主持人對此評論進行了最小化
有沒有人弄清楚這一點? 我也想知道。
網站主持人對此評論進行了最小化
有人想出答案了嗎?
網站主持人對此評論進行了最小化
同樣的問題在這裡
網站主持人對此評論進行了最小化
大家好,
要使用按鈕隱藏特定列包含空白單元格的行,請執行以下操作:
首先,您應該從“開發人員”選項卡中插入一個命令按鈕。
然後為命令按鈕應用以下 VBA 代碼,(注意:請將單元格引用 a1:a20 更改為您自己的)

Private Sub CommandButton1_Click()
調暗為範圍,x 為範圍
設置 rng = Range("a1:a20")
Application.ScreenUpdating = False
對於每個 x In rng
如果 Len(x.Text) = 0 那麼
x.EntireRow.Hidden = True
其他
x.EntireRow.Hidden = 假
如果結束
下一個x
Application.ScreenUpdating = True
END SUB

請嘗試一下,希望對您有所幫助!
查看附件 (1 / 5)
網站主持人對此評論進行了最小化
如果使用 VBA 代碼的 2 個不同列中的空白單元格如何自動隱藏行
網站主持人對此評論進行了最小化
嗨,薩爾佩,
要自動隱藏 2 個不同列中的空白單元格的行,請應用以下代碼:

Private Sub Worksheet_Change(ByVal Target As Range)
將 xRg、xCell 調暗為範圍
將 xRgs、xRgArea 調暗為範圍
設置 xRgs = Range("A1:A22,D1:D22")
Application.ScreenUpdating = False
出錯時轉到 Ctn
對於 xRgs.Areas 中的每個 xRgArea
調試打印xRgArea.Address
對於 xRgArea.Columns 中的每個 xRg
對於 xRg.Rows 中的每個 xCell
如果 xCell.Value = "" 那麼
xCell.EntireRow.Hidden = True
轉到 Ctn
ElseIf Not xCell.EntireRow.Hidden 然後
xCell.EntireRow.Hidden = 假
如果結束
貨號:
下一頁
下一頁
下一頁
Application.ScreenUpdating = True
END SUB

您可以根據需要更改單元格引用。
請嘗試一下!
網站主持人對此評論進行了最小化
Ellااجزكككذ°ذااااا催血□ئsthip
網站主持人對此評論進行了最小化
我想知道如果單元格由於公式而為空白,代碼是否有效?
網站主持人對此評論進行了最小化
你好,阿欽塔,
上面的 VBA 代碼也適用於公式結果的空白單元格,您可以嘗試一下,謝謝!
網站主持人對此評論進行了最小化
該公式在開始時根據信息隱藏單元格,但如果單元格的內容髮生變化,則不會重新顯示單元格。 我希望它顯示任何已填充信息的新單元格(通過單元格查找發生)。 我該怎麼做呢?
網站主持人對此評論進行了最小化
Bom dia, esta é minha necessidade também。

Preciso ocultar e quando a célula for preenchida (uso uma fórmula que preenche a mesma se houver valor em outra planilha) seja reexibida a linha novamente de forma automática。

Grato。
網站主持人對此評論進行了最小化
我想要的是這樣的東西在活動表中工作:

如果單元格 D2:D55 = ""
然後 Hide.EntireRow

如果單元格 D2:D55 = “有任何值”
然後 Show.EntireRow

怎麼樣?
網站主持人對此評論進行了最小化
您好,Kacha,您只需將代碼中的單元格引用更改為您自己的單元格範圍,如下所示: Private Sub Worksheet_Change(ByVal Target As Range)
'更新通過 Extendoffice
將 xRg 調暗為範圍
Application.ScreenUpdating = False
對於範圍內的每個 xRg("D2:D55")
如果 xRg.Value = "" 那麼
xRg.EntireRow.Hidden = True

其他
xRg.EntireRow.Hidden = 假
如果結束
下一個 xRg
Application.ScreenUpdating = True
End Sub 插入代碼後,請記得雙擊任意單元格並按回車鍵使代碼生效。
網站主持人對此評論進行了最小化
撤消自動隱藏的最簡單方法是什麼?
網站主持人對此評論進行了最小化
嗨,mình có dùng 2 code trong 1 file excel (1 code là của bạn) với mục đích in ra những bản riêng biệt và không bị thừa dòng trống。 Khi mình ấn in từng bản thì ok nhưng nếu in 1 loạt thì 代碼 隱藏 không có tác dụng, bạn xem giúp mình với nhé, mình cảmơn!

子 PRINT_PRINT()
調暗為範圍,x 為範圍
設置 rng = Range("a16:a23")
Application.ScreenUpdating = False
對於每個 x In rng
如果 Len(x.Text) = 0 那麼
x.EntireRow.Hidden = True
其他
x.EntireRow.Hidden = 假
如果結束
下一個x
Application.ScreenUpdating = True


調暗 p1、p2、i&
p1 = Sheet1.Range("O1").Value
p2 = Sheet1.Range("O2").Value
如果 IsNumeric(p1) = False 或 IsNumeric(p2) = False 那麼
tb = MsgBox("So code phai la so.", , "Thông báo")
退出小組
如果結束
如果 p1 > p2 那麼
tb = MsgBox("So code sau phai >= so code truoc.", , "Thông báo")
退出小組
如果結束
如果 p1 < 1 或 p2 < 1 那麼
tb = MsgBox("So code phai >= 1.", , "Thông báo")
退出小組
如果結束
如果 p1 <= p2 那麼
對於 i = p1 到 p2
Sheet1.Range("M2").Value = i
Sheet1.打印輸出
下一頁
如果結束
END SUB
網站主持人對此評論進行了最小化
Hola,Necesito crear una macro que me oculte una columna.Sería así: en la primea fila poner un 1 a las columnas que no quiero ocultar y no poner ningún valor a las columnas que quiero ocultar。 Estoy haciendo el siguiente código, pero no se en que fallo:
子 OcultarColumnaSin1()
Application.ScreenUpdating = False
對於列中的每個範圍
如果蘭戈=“”那麼
rango.EntireColumn.Hidden = True
其他
rango.EntireColumn.Hidden = 假
如果結束
下一個蘭戈
Application.ScreenUpdating = True
END SUB
網站主持人對此評論進行了最小化
這對我很有用,它隱藏行並在我的值根據公式更改時打開它們。 我的問題是我的工作表有 104 行長。 每次我單擊一個單元格時,它都會攪動一下。 有什麼方法可以在激活時加快過渡速度? 還是我的電腦?謝謝!
網站主持人對此評論進行了最小化
如果 E 列為空白或 0,我想自動隱藏行
網站主持人對此評論進行了最小化
如果 E 列中的值為空白或 0,我希望該行自動隱藏。 如果 E 中的值更改為空白或 0 以外的值,我希望它顯示。 報告為 1500 行
網站主持人對此評論進行了最小化
你好,凱茜,
要根據空白單元格或 0 值自動隱藏行,請使用以下 vba 代碼:
Private Sub Worksheet_Change(ByVal Target As Range)
'Updateby Extendoffice
    Dim xRg As Range
    Application.ScreenUpdating = False
        For Each xRg In Range("E1:E1500")
            If (xRg.Value = "") Or (xRg.Value = "0") Then
                xRg.EntireRow.Hidden = True
            Else
                xRg.EntireRow.Hidden = False
            End If
        Next xRg
    Application.ScreenUpdating = True
End Sub


請嘗試,希望對您有所幫助!
網站主持人對此評論進行了最小化
如何隱藏包含複選框的行?
網站主持人對此評論進行了最小化
你好,斯威塔

要使用複選框隱藏行,下面的文章可能會對您有所幫助:
Excel中隱藏行時如何隱藏複選框?

請嘗試,如果您還有其他問題,請在此處發表評論。
網站主持人對此評論進行了最小化
在 office 2013/2019/2021 中執行代碼時,它可以工作,但需要花費太多時間才能完成(僅隱藏 95 行)。
你怎麼能加快這個速度?
謝謝!
網站主持人對此評論進行了最小化
嗨,阿薩夫,
該代碼在我的 Excel 文件中運行良好,如果您不介意,可以在這裡上傳您的附件工作簿嗎? 以便我們可以幫助檢查問題。

感謝您!
網站主持人對此評論進行了最小化
apakah ada rumus lain?, saya berharap baris kosong itu akan terhapus saat mencetak 文件 menjadi PDF tapi tampilan di excelnya tetap
網站主持人對此評論進行了最小化
你好,努爾佳娜
要解決您的問題,首先應該隱藏空白行,然後打印數據,打印數據後,您需要再次取消隱藏空白行。 請這樣做:
1. 應用這個公式:=COUNTA(A2:E2) 在你的數據旁邊,看截圖:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-1.png
2. 然後,過濾新的輔助空白列,隱藏所有 0 值行,看截圖:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-2.png
3.然後,您應該隱藏新的空白列,並打印數據,打印工作表後,請根據需要取消過濾以取消隱藏空白行。
請嘗試,希望對您有所幫助!
網站主持人對此評論進行了最小化
您好,我對宏的“自動化”有疑問。 我正在尋找一種方法,讓代碼作為一個自動化過程工作,而不需要“手動”運行宏。 由於我發現使用您的代碼存在問題,因此我一直在使用您自己的代碼變體。 這是我的變體:

子隱藏行()
將 xRg 調暗為範圍
Application.ScreenUpdating = False
對於範圍內的每個 xRg("A3:A800")
如果 (xRg.Value = "") 那麼
xRg.EntireRow.Hidden = True
其他
xRg.EntireRow.Hidden = 假
如果結束
下一個 xRg
Application.ScreenUpdating = True
END SUB

我正在嘗試創建一個需要不斷變化的值的電子表格,因此需要一個真正的“自動化”過程。 我對 VBA 比較陌生,如果您的代碼實際上已經滿足我的要求,您介意幫助/教我在 VBA 中應用它嗎? 謝謝。
網站主持人對此評論進行了最小化
你好,維安
其實我們文章中的代碼是可以自動運行的。
您必須將代碼複製並粘貼到當前工作表的代碼模塊中,然後返回工作表,雙擊任意單元格,然後按 Enter 鍵,包含空白單元格的行將被直接隱藏。

請按照本文的方法一步一步來,希望對您有所幫助!
感謝您!
這裡還沒有評論
留下你的意見
以訪客身份發帖
×
評價此帖子:
0   字符
推薦地點

關注我們

版權所有©2009 - 萬維網。extendoffice.com。 | 版權所有。 供電 ExtendOffice。 |
Microsoft和Office徽標是Microsoft Corporation在美國和/或其他國家的商標或註冊商標。
受Sectigo SSL保護