انتقل إلى المحتوى الرئيسي

كيفية إخفاء الصفوف تلقائيًا إذا كانت الخلايا فارغة في عمود؟

إذا كان لديك نطاق من البيانات يملأ بعض الخلايا الفارغة في عمود ، وتريد الآن إخفاء الصفوف التي تحتوي على الخلايا الفارغة في هذا العمود تلقائيًا. هل هناك طرق جيدة لحل هذه الوظيفة في Excel بسرعة وسهولة؟

إخفاء الصفوف تلقائيًا إذا كانت الخلايا فارغة في عمود برمز VBA


السهم الأزرق الحق فقاعة إخفاء الصفوف تلقائيًا إذا كانت الخلايا فارغة في عمود برمز VBA

قد تساعدك التعليمات البرمجية التالية على إخفاء جميع الصفوف إذا كانت الخلايا فارغة في عمود معين مرة واحدة ، وإذا قمت بحذف محتوى الخلية في هذا العمود ، فسيتم إخفاء الصفوف تلقائيًا أيضًا. الرجاء القيام بما يلي:

1. انقر بزر الماوس الأيمن فوق علامة تبويب الورقة التي تريد إخفاء الصفوف تلقائيًا إذا كانت هناك خلايا فارغة في عمود ، ثم اختر عرض الرمز من قائمة السياق ، في النافذة المنبثقة ميكروسوفت فيسوال باسيك للتطبيقات نافذة ، يرجى نسخ ولصق الكود التالي في الفراغ وحدة:

رمز فبا: إخفاء الصفوف تلقائيًا إذا كانت الخلايا الفارغة في عمود:

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. ثم ارجع إلى ورقة العمل ، والآن ، عندما تنقر نقرًا مزدوجًا فوق أي خلية وتضغط أدخل key ، تم إخفاء الصفوف التي تحتوي على خلايا فارغة في العمود A مرة واحدة ، وإذا قمت بمسح أي محتوى خلية في الخلايا المحددة في العمود A ، فسيتم إخفاء الصفوف تلقائيًا.

إخفاء الصفوف تلقائيًا doc 2

 

أفضل أدوات إنتاجية المكتب

الميزات الشعبية: البحث عن التكرارات أو تمييزها أو تحديدها   |  حذف الصفوف الفارغة   |  دمج الأعمدة أو الخلايا دون فقدان البيانات   |   جولة بدون صيغة 
سوبر بحث: معايير متعددة VLookup    VLookup ذات القيمة المتعددة  |   VLookup عبر أوراق متعددة   |   بحث غامض ....
قائمة منسدلة متقدمة: إنشاء القائمة المنسدلة بسرعة   |  القائمة المنسدلة التابعة   |  قائمة منسدلة متعددة التحديد ....
مدير العمود: إضافة عدد محدد من الأعمدة  |  نقل الأعمدة  |  تبديل حالة رؤية الأعمدة المخفية  |  مقارنة النطاقات والأعمدة 
الميزات المميزة: التركيز على الشبكة   |  عرض تصميم   |   شريط الفورمولا الكبير    مدير المصنفات والأوراق   |  مكتبة الموارد (النص السيارات)   |  منتقي التاريخ   |  اجمع أوراق العمل   |  تشفير/فك تشفير الخلايا    إرسال رسائل البريد الإلكتروني عن طريق القائمة   |  سوبر تصفية   |   مرشح خاص (تصفية غامق / مائل / يتوسطه خط ...) ...
أفضل 15 مجموعة أدوات12 نص الأدوات (إضافة نص, إزالة الأحرف، ...)   |   +50 رسم الأنواع (مخطط جانت، ...)   |   40+ عملي الصيغ (احسب العمر على أساس تاريخ الميلاد، ...)   |   19 إدخال الأدوات (أدخل رمز الاستجابة السريعة, إدراج صورة من المسار، ...)   |   12 تحويل الأدوات (أرقام إلى كلمات, نتيجة تحويل عملة، ...)   |   7 دمج وتقسيم الأدوات (الجمع بين الصفوف المتقدمة, تقسيم الخلايا، ...)   |   ... و اكثر

ارفع مهاراتك في برنامج Excel باستخدام Kutools for Excelوتجربة كفاءة لم يسبق لها مثيل. Kutools for Excel يقدم أكثر من 300 ميزة متقدمة لتعزيز الإنتاجية وتوفير الوقت.  انقر هنا للحصول على الميزة التي تحتاجها أكثر...

علامة تبويب kte 201905


Office Tab يجلب الواجهة المبوبة إلى Office ، ويجعل عملك أسهل بكثير

  • تمكين التحرير والقراءة المبوبة في Word و Excel و PowerPointوالناشر والوصول و Visio والمشروع.
  • فتح وإنشاء مستندات متعددة في علامات تبويب جديدة من نفس النافذة ، بدلاً من النوافذ الجديدة.
  • يزيد من إنتاجيتك بنسبة 50٪ ، ويقلل مئات النقرات بالماوس كل يوم!

 

Comments (33)
No ratings yet. Be the first to rate!
This comment was minimized by the moderator on the site
I'm trying to find a way hide blank rows in sheet2 from A2:A20, if Sheet!A5=Yes. any suggestion?
This comment was minimized by the moderator on the site
Hi, i'm having issues with the "automation" of the macro. I'm searching for a way for the code to work as an automated process without the needs of "manually" running the macro. i've been using my own variant of your code due to me finding issues to use your code. This is my variant:

Sub HideRows()
Dim xRg As Range
Application.ScreenUpdating = False
For Each xRg In Range("A3:A800")
If (xRg.Value = "") Then
xRg.EntireRow.Hidden = True
Else
xRg.EntireRow.Hidden = False
End If
Next xRg
Application.ScreenUpdating = True
End Sub

I'm trying to create a spreadsheet which requires everchanging values, therefore would require a genuine "automated" procress. I'm relatively new to VBA and if your code actually already meets my requirements would you mind helping/teach me to apply it in VBA? Thanks.
This comment was minimized by the moderator on the site
Hello, Vian
In fact, the code in our article can be run automatically.
You must copy and paste the code into the code module of current worksheet, then return to the worksheet, double-click any cell, and press the Enter key, the row containing the blank cell will be is directly hidden.

Please follow the method in this article step by step, hope it can help you!
Thank you!
This comment was minimized by the moderator on the site
apakah ada rumus lain?, saya berharap baris kosong itu akan terhapus saat mencetak file menjadi PDF tapi tampilan di excelnya tetap
This comment was minimized by the moderator on the site
Hello, Nurjanah
To solve your problem, first, you should hide the blank rows, and then print the data, after printing the data, you need unhide the blank rows again. Please do as this:
1. Apply this formula: =COUNTA(A2:E2) beside your data, see screenshot:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-1.png
2. Then, filter the new helper Blank column, hide all 0 value rows, see screenshot:
https://www.extendoffice.com/images/stories/comments/comment-skyyang/doc-hide-blanks-2.png
3. And then, you should hide the new Blank column, and print the data, after printing the worksheet, please cancel the filter to unhide the blank rows as you need.
Please try, hope it can help you!
This comment was minimized by the moderator on the site
When executing the code in office 2013/2019/2021 it works but takes too much time to complete (only 95 rows to hide).
How can you speed this?
Thanks!
This comment was minimized by the moderator on the site
Hi, Asaf,
The code works well in my Excel file, could you upload your attachment worbook here if you don't mind? So that we can help to check the problem.

Thank you!
This comment was minimized by the moderator on the site
How to hide row which contain checkbox?
This comment was minimized by the moderator on the site
Hello, Sweta

To hide rows with checkbox, the below article may do you a favor:
How To Hide Checkbox When Row Is Hidden In Excel?

Please try, if you still have any other question, please comment here.
This comment was minimized by the moderator on the site
If the value in column E is blank or 0 i would like the row to auto hide. If the value in E changes to something other than blank or 0 I would like it to show. Report is 1500 rows
This comment was minimized by the moderator on the site
Hello, Cathy,
To hide the rows automatically based on blank cells or 0 values, please use the below vba code:
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


Please try, hope it can help you!
This comment was minimized by the moderator on the site
I would like to auto hide rows if column E is blank or 0
This comment was minimized by the moderator on the site
This is working great for me, It hides the rows and opens them when my values change based on formulas.  The question I have is my sheet is 104 rows long.  It churns for a bit each time I click a cell.  Any way to speed up the transition when it is activated?  Or is it my computer?Thanks!
This comment was minimized by the moderator on the site
Hola,Necesito crear una macro que me oculte una columna.Sería así: en la primera 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:
Sub OcultarColumnaSin1()
Application.ScreenUpdating = False
For Each rango In Columns
If rango = "" Then
rango.EntireColumn.Hidden = True
Else
rango.EntireColumn.Hidden = False
End If
Next rango
Application.ScreenUpdating = True
End Sub
This comment was minimized by the moderator on the site
Hi, 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ì code Hide không có tác dụng, bạn xem giúp mình với nhé, mình cảm ơn!

Sub PRINT_PRINT()
Dim rng As Range, x As Range
Set rng = Range("a16:a23")
Application.ScreenUpdating = False
For Each x In rng
If Len(x.Text) = 0 Then
x.EntireRow.Hidden = True
Else
x.EntireRow.Hidden = False
End If
Next x
Application.ScreenUpdating = True


Dim p1, p2, i&
p1 = Sheet1.Range("O1").Value
p2 = Sheet1.Range("O2").Value
If IsNumeric(p1) = False Or IsNumeric(p2) = False Then
tb = MsgBox("So code phai la so.", , "Thông báo")
Exit Sub
End If
If p1 > p2 Then
tb = MsgBox("So code sau phai >= so code truoc.", , "Thông báo")
Exit Sub
End If
If p1 < 1 Or p2 < 1 Then
tb = MsgBox("So code phai >= 1.", , "Thông báo")
Exit Sub
End If
If p1 <= p2 Then
For i = p1 To p2
Sheet1.Range("M2").Value = i
Sheet1.PrintOut
Next
End If
End Sub
There are no comments posted here yet
Load More
Please leave your comments in English
Posting as Guest
×
Rate this post:
0   Characters
Suggested Locations