2013-12-12 4 views
0

Использование следующего кода позволяет открыть последнюю отредактированную ячейку при открытии электронной таблицы google.Google Spreadsheet открывает последнюю отредактированную ячейку с использованием сценария

function setTrigger() { 
    var ss = SpreadsheetApp.getActive(); 
    ScriptApp.newTrigger("myFunction").forSpreadsheet(ss).onEdit().create(); 
} 

function myFunction() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var sName = sheet.getName(); 
    var currentCell = sheet.getActiveCell().getA1Notation(); 
    UserProperties.setProperty("mySheetName", sName); 
    UserProperties.setProperty("myCell", currentCell); 
} 

function onOpen() { 
    var lastModifiedSheet = UserProperties.getProperty("mySheetName"); 
    var lastModifiedCell = UserProperties.getProperty("myCell"); 
    SpreadsheetApp.getActiveSpreadsheet().getSheetByName(lastModifiedSheet).getRange(lastModifiedCell).activate(); 
} 

У меня есть элемент, который имеет

=today() 

который обновляет так что код не открывает последнюю строку моей таблицы, но открывается в ячейку, которая обновляется с сегодня().

Как обновить скрипт, чтобы открыть таблицу в моей последней отредактированной ячейке в последней строке таблицы?

+0

Вы можете поделиться своей таблицей? – Blexy

+0

Вот ссылка, спасибо. [Link] (https://docs.google.com/spreadsheet/ccc?key=0AtPy2XABbdNTdFRzaHZjYTgxLS1kQ21ITXlGRGtkeEE&usp=sharing) – hamm44

ответ

0

Вы можете попробовать это:

function myFunction() { 
    var sheet = SpreadsheetApp.getActiveSheet(); 
    var sName = sheet.getName(); 
    var currentCell = sheet.getActiveCell().getA1Notation(); 
    var temp = ""; 
    if (currentCell != "A1") {temp = currentCell;} 
UserProperties.setProperty("mySheetName", sName); 
    UserProperties.setProperty("myCell", temp); 
} 

Я добавил переменный Темп и делаю чек (предполагая, что только A1 имеет функцию today()) перед обновлением темпа. Кажется, работает.

+0

да, что сработало спасибо! – hamm44

Смежные вопросы