Как скопировать сам фильтр на другой лист в той же электронной таблице Google?

#google-apps-script #google-sheets

Вопрос:

У меня есть фильтр на предыдущих вкладках, я вижу первую строку на этих вкладках с выпадающим списком, который я могу выбрать/отфильтровать. Затем я создаю вкладку в той же электронной таблице и хочу использовать ту же первую строку, что и предыдущие вкладки. Поэтому я скопировал первую строку на новую вкладку, но копируется только текст, но не сам фильтр. Спасибо.

Ответ №1:

Вам нужно использовать скрипт. Вот оно (замените листы 1 и 2 своими именами вкладок):

 const SRC = 'Sheet1'
const DST = 'Sheet2'

function copyFilter() {
  const ss = SpreadsheetApp.getActive()
  const shSrc = ss.getSheetByName(SRC)
  const shDst = ss.getSheetByName(DST)

  const existingFilter = shDst.getFilter()
  if(existingFilter){
    existingFilter.remove()
  }
  const headerRange = shSrc.getDataRange().offset(0,0,1)
  const filterRange = shDst.getRange(headerRange.getA1Notation())
  filterRange.setValues(headerRange.getValues())
  filterRange.createFilter()
}