قابلیت های عالی قالب بندی شرطی Excels به شما امکان می دهد قالب بندی سلول ها را بر اساس محتوای یک سلول تغییر دهید. متأسفانه هیچ راهی برای پنهان کردن کل ستون های داده بر اساس مقدار یک سلول خاص وجود ندارد.
با این حال، می توانید با استفاده از یک ماکرو برای تجزیه و تحلیل سلول و تنظیم ویژگی Hidden ردیفی که می خواهید به صورت مشروط مخفی کنید، به جلوه مورد نظر دست پیدا کنید. ماکرو ساده زیر، برای مثال، محتویات سلول B4 را بررسی می کند و اگر سلول حاوی 0 باشد، ستون H را پنهان می کند. اگر سلول B4 حاوی 0 نباشد، ستون H نمایش داده می شود.
Sub HideColumn1()
If Range("B4").Value = 0 Then
Columns("H").EntireColumn.Hidden = True
Else
Columns("H").EntireColumn.Hidden = False
End If
End Sub
اگر می خواهید مخفی سازی و عدم نمایش ستون به صورت بلادرنگ انجام شود، می توانید از نسخه ماکرو زیر استفاده کنید. فقط مطمئن شوید که این نسخه را در پنجره کد صفحه کاری که می خواهید روی آن کار کند قرار دهید.
Private Sub Worksheet_Change(ByVal Target As Range)
If Range("B4").Value = 0 Then
Columns("H").EntireColumn.Hidden = True
Else
Columns("H").EntireColumn.Hidden = False
End If
End Sub
توجه کنید که ذات دو ماکرو یکسان است. تنها تفاوت این است که نسخه دوم توسط یک رویداد در اکسل راه اندازی می شود - تغییر سلولی که در حال حاضر انتخاب شده است. این بدان معناست که هر بار که از یک سلول به سلول دیگر میروید، مقدار B4 بررسی میشود و ستون H یا پنهان یا پنهان میشود.
اگر ممکن است که محتویات سلول B4 خالی باشد، ممکن است اکسل آن خالی بودن را به عنوان یک مقدار صفر تفسیر کند. در این صورت، می توانید ماکرو را کمی تغییر دهید تا سلول خالی را بررسی کند.
Sub HideColumn2()
Dim rCell As Range
Set rCell = Range("B4")
Columns("H").EntireColumn.Hidden = False
If (Not IsEmpty(rCell)) _
And (IsNumeric(rCell)) _
And (rCell.Value = 0) Then
Columns("H").EntireColumn.Hidden = True
End If
End Sub
این نسخه از ماکرو در واقع سه شرط را بررسی می کند: خالی نبودن B4، حاوی مقدار عددی و اینکه مقدار آن 0 باشد. اگر هر سه این شرایط برآورده شوند، ستون H پنهان می شود.