Excel - условно скриване на редове в няколко листа

Проблем

Имам един Excel файл с няколко листа и всички те с еднакви колони и редове. Трябва да скрия определени редове във всеки лист (същите номера на редовете за всички листове), ако стойността е нула в определена клетка.

Така че, как мога да го направя в VB и автоматично се актуализира при промяна на стойността в предишната посочена клетка.

Имам 10 листа за десет служители и във всеки лист имам следните данни:

 A1 = Име на служител A2 = Възраст, A4 = Заплата, B4 = 4000 (всички суми (стойности) ще се различават във всеки лист) A5 = Удръжки, B5 = 500 A6 = Застраховка, B6 = 1000 A8 = Нетна заплата, B8 = 2500 A10 = Платен с Чек A11 = Платен от Трансфер, B11 = 2500 A13 = Общо, B13 = 2500 

Изискването ми е да скрия всеки ред, който има нула в колона Б във всичките 10 листа. Разбира се, стойността за всички листове е взета от един основен лист, така че ако стойността в главните листове се промени, тя ще бъде променена и в 10 листа на всеки кореспондент.

Забележка: Не е необходимо да филтрирам стойностите.

Накратко, искам да напиша макрос, за да скрия всички редове (определени), които имат нула в колона B, и да бъдат приложени върху 10 листа, които имат еднакви редове и колони.

Решение

  • Отворете VBE
  • Кликнете върху основния си лист
  • Поставете този код:

 Частна подредба_Промяна (ByVal Target As Range) Dim bHide Като Boolean Ако Target.Column 2 Тогава изход Sub bHide = True Ако (CStr (Target) "0") Тогава bHide = False за всеки лист в листове Ако Sheet.Name = ActiveSheet. Име След това GoTo Next_Sheet Sheets (Sheet.Name) .Rows (Target.Row) .Hidden = bHide Next_Sheet: Next End Sub 

Забележка

Благодарение на rizvisa1 за този съвет на форума.

Предишна Статия Следваща Статия

Топ Съвети