@TomasF

Как решить ошибку «TypeError: Cannot read property 'getRange' of undefined»?

Моей задачей является скопировать информацию из ячейки 1 листа и перенести её в ячейку 2 листа при помощи скрипта, триггером для которого будет являться значение флажка "true".
Для простоты решения этой задачи я сохранил сначала макрос, который копирует и вставляет информацию, а затем, через редактор скриптов вставил в него 2 строки кода в качестве триггера, но происходит ошибка, а каким образом её исправить, я пока не нашёл. Прошу помощи у знающих людей.
function Rt() {

	if(spreadsheet.getRange(6, 6).isChecked()===true){
	
		var spreadsheet = SpreadsheetApp.getActive();
		spreadsheet.getRange('A3').activate();
		spreadsheet.setActiveSheet(spreadsheet.getSheetByName('ae'), true);
		spreadsheet.getRange('A3').activate();
		spreadsheet.getActiveSheet().insertRowsAfter(spreadsheet.getActiveRange().getLastRow(), 1);
		spreadsheet.getActiveRange().offset(spreadsheet.getActiveRange().getNumRows(), 0, 1, spreadsheet.getActiveRange().getNumColumns()).activate();
		spreadsheet.setActiveSheet(spreadsheet.getSheetByName('dr'), true);
		spreadsheet.setActiveSheet(spreadsheet.getSheetByName('ae'), true);
		spreadsheet.getRange('dr!A3').copyTo(spreadsheet.getActiveRange(), SpreadsheetApp.CopyPasteType.PASTE_VALUES, false);
	  spreadsheet.getRange(6, 6).uncheck();
		}
};
  • Вопрос задан
  • 605 просмотров
Решения вопроса 1
oshliaer
@oshliaer Куратор тега Google Apps Script
Google Products Expert
Решение этой проблемы заключается в точном определении, какую Таблицу использует скрипт. На данный момент этой ошибки не существует, но, все равно, по возможности, лучше указывать, какую именно Таблицу использовать, поэтому нужно удалить упоминания об активной Таблице/листе и указать точные сущности через

SpreadsheetApp.openById()
book.getSheetByName()
sheet.getRange()

и т.п.
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы