Новости:

Форум на данный момент в стадии обновления. Если у Вас возникли проблемы со входом в свою учетную запись - просьба писать на email: info@excel-vba.ru

Главное меню

Скрипт для скрытия столбцов по условию

Автор Светлана МO, 04.12.2024, 08:14:23

« назад - далее »

Светлана МO

Здравствуйте! Подскажите, пожалуйста, как нужно настроить скрипт ниже, чтобы он отрабатывал на всех листах таблицы, при смене значения в столбце с "Открыта" на "Закрыта" (должна скрываться строка):

function onEdit(e) {
  const specificSheet = "Общие отделы"   // имя листа, на котором будет отслеживание изменения значений ячеек
  const specificCellColumn = 12   // номер столбца для отслеживания изменений

  let sheetCheck = (e.range.getSheet().getName() == specificSheet)
  let cellCheck = (e.range.getColumn() == specificCellColumn)

  if (!(sheetCheck && cellCheck)) {
    return
  }
  else {
    var cellVal = e.range.getValue();
    if (cellVal == "Закрыта") {
      e.range.getSheet().hideRows(e.range.getRow());}
  }
}

И нужно ли к скрипту записать макрос?

Дмитрий Щербаков(The_Prist)

Добрый день.
У Вас же даже комментарии приведены :) Обратите внимание:
const specificSheet = "Общие отделы"   // имя листа, на котором будет отслеживание изменения значений ячеекэто именно нужный Вам кусок. Если убрать проверку на specificSheet - то скрипт будет выполняться на всех листах, не глядя на их имя:
function onEdit(e) {
  //const specificSheet = "Общие отделы"   // имя листа, на котором будет отслеживание изменения значений ячеек
  const specificCellColumn = 12   // номер столбца для отслеживания изменений

  //let sheetCheck = (e.range.getSheet().getName() == specificSheet)
  let cellCheck = (e.range.getColumn() == specificCellColumn)

  if (!(cellCheck)) {
    return
  }
  else {
    var cellVal = e.range.getValue();
    if (cellVal == "Закрыта") {
      e.range.getSheet().hideRows(e.range.getRow());}
  }
}

P.S. Для оформления кодов используйте соответствующую кнопку на панели, при создании сообщения.
Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...

Яндекс.Метрика Рейтинг@Mail.ru