Скрыть строки, если все столбцы пустые Сценарий приложения Google Sheets - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь получить автоматический скрипт, который проверяет, являются ли столбцы справа от «D9» пустыми, и, если они все, скрывают строку.Моя идея состояла в том, чтобы перебрать цикл for и идти строка за строкой и проверить это, поэтому заменив аргумент Row в диапазоне на «i», но кажется, что по какой-то причине, если я поставлю A1notation, он будет работать, но не с «row»и аргументы 'столбца'.Я только начал возиться с этим несколько дней назад, так что я уверен, что делаю что-то не так, если бы вы могли указать мне правильное направление и указать, почему это не работает, это было бы здорово :)1001 *

Так что это работает:

function SelectLastColumn() {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange("D9").activate();
var currentCell = spreadsheet.getCurrentCell();
spreadsheet.getSelection()
.getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();

Это не так:

function SelectLastColumn() { var spreadsheet =
SpreadsheetApp.getActive(); spreadsheet.getRange(9,4).activate(); var
currentCell = spreadsheet.getCurrentCell(); 
spreadsheet.getSelection()
.getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
currentCell.activateAsCurrentCell();

1 Ответ

0 голосов
/ 02 июня 2018

О причине того, что скрипт выше работает, а скрипт ниже не работает, как насчет этого ответа?В вашем сценарии spreadsheet из var spreadsheet = SpreadsheetApp.getActive(); - это электронная таблица как объект.Когда getRange() используется для этой ситуации, необходимо соблюдать следующие пункты:

  • Когда getRange() используется a1Notation, его можно использовать для Spreadsheet и Лист .
  • Когда getRange() используется строкой и столбцом, его можно использовать только для Лист .

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

От:

var spreadsheet = SpreadsheetApp.getActive();

Кому:

var spreadsheet = SpreadsheetApp.getActiveSheet();

Ссылка:

Если я неправильно понимаю ваш вопрос, извините.

...