Rob یک کتاب کار دارد که شامل چندین کاربرگ است. او میخواهد سادهترین راه را برای حذف فیلترها و پنهان کردن ردیفها و ستونها در همه کاربرگها به طور همزمان بداند.
می توان فکر کرد که انجام این کار به صورت دستی با ایجاد یک "مجموعه انتخاب" از همه کاربرگ هایی که می خواهید روی آنها تأثیر بگذارید و سپس حذف فیلترها امکان پذیر است. در حالی که میتوانید از این روش برای پنهان کردن ردیفها استفاده کنید، نمیتوانید روی فیلترها تأثیر بگذارید—وقتی بیش از یک کاربرگ را انتخاب کنید، ابزار Filter (در برگه Data روبان) دیگر قابل انتخاب نیست.
این بدان معنی است که شما باید از یک ماکرو برای انجام کار استفاده کنید - مگر اینکه بخواهید فیلترها را هر بار یک کاربرگ حذف کنید. در اینجا یک ماکرو کوچک وجود دارد که فیلترهای اعمال شده بر روی کاربرگ های کتاب کار را حذف می کند:
Sub RemoveFilters()
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In ThisWorkbook.Worksheets
If wks.AutoFilterMode Then wks.AutoFilterMode = False
Next wks
Application.ScreenUpdating = True
End Sub
اگر سطرها و ستونهای پنهان نتیجه فیلترهایی هستند که اعمال کردهاید، آن سطرها و ستونها باید پس از حذف همه فیلترها قابل مشاهده باشند. اگر ردیفها و ستونهای دیگری وجود دارد که به صورت دستی پنهان شدهاند و میخواهید نمایش داده شوند، میتوانید از نسخه زیر ماکرو استفاده کنید:
Sub RemoveFiltersUnhide()
Dim wks As Worksheet
Application.ScreenUpdating = False
For Each wks In ThisWorkbook.Worksheets
With wks
If .AutoFilterMode Then .AutoFilterMode = False
.Rows.Hidden = False
.Columns.Hidden = False
End With
Next wks
Application.ScreenUpdating = True
End Sub
این نسخه فیلترها را حذف می کند و سپس هر ردیف و ستونی را که قبلاً پنهان شده بود، آشکار می کند.