Скрипт работал на всех листах и ​​перестал работать внезапно только на одном листе - PullRequest
0 голосов
/ 11 февраля 2020

Я написал скрипт для Google листов со смещением при отправке формы. Есть 2 листа с 2 связанными Gforms.

Раньше следующий скрипт хорошо работал на обоих листах. Внезапно сценарии работали только на одном листе. Я попытался вручную запустить скрипт на активном листе, который я хочу (лист активирован, очевидно), скрипт не запущен. Тем не менее, скрипт хорошо работает на другом листе.

Подводя итог:

Скрипт не запущен (вручную или со смещением отправки Gforms): имя листа " DemandeIntervention F-TE C -052 " Сценарий выполняется (вручную или со смещением представления Gforms): имя листа " RapportIntervention F-QUA-052" enter image description here

Здесь и далее скрипт:

function CopyFormatting() {

//Déclaration des variables
var SS = SpreadsheetApp.getActiveSheet(); //Sheet of forms response
var LastRow = SS.getLastRow(); //last row of sheet (n)
var RefRow = SS.getRange('3:3'); //Row n°3 considered as reference

//Copy formatting to last row from reference row
RefRow.copyTo(SS.getRange(LastRow,1), {formatOnly: true});

}

Пожалуйста, не могли бы вы помочь мне запустить скрипт на обоих листах? Спасибо

1 Ответ

1 голос
/ 17 февраля 2020

Разница между вашими двумя листами заключается в том, что нерабочий лист имеет значение в ячейке B104.

Таким образом SS.getLastRow(); возвращает 104 в качестве последней строки листа и, следовательно, ячейку A104 форматируется при каждом выполнении скрипта.

Вы можете избежать этой проблемы, удалив все строки ниже строки с последним ответом формы.

Если это для вас очень важно иметь текст i B104, тогда вам нужно заменить getLastRow() другими методами, такими как, например, getNextDataCell (direction) .

...