2013-04-13 2 views
0

Я ищу, чтобы вставлять комментарии в определенную ячейку после запуска скрипта. Сценарий, который я использую, заключается в том, чтобы вставить запись календаря, но я хочу, чтобы это было сделано только один раз. Чтобы сделать это, я получу скрипт, чтобы проверить, введен ли комментарий/примечание в ячейку. Теоретически это должно быть легко, но у меня возникают проблемы с выбором правильной ячейки ... Может ли кто-нибудь помочь? Мой код ниже.Вставить комментарий - GoogleSpreadsheets

Я после комментария, чтобы перейти в ячейку, которая соответствует var = date. Если кто-нибудь может дать мне указатели, я бы очень признателен!

Приветствие, Пита

function CalendarInputIVNShortlist() {` 

    `var sheet = SpreadsheetApp.getActiveSheet(); 

    var startRow = 2; // First row of data to process 
    var numRows = 2; // Number of rows to process 
    var dataRange = sheet.getRange(startRow, 1, numRows, 26); //What data will be used 
    var data = dataRange.getValues(); 
    var cal = CalendarApp.getDefaultCalendar(); //Gets the correct calendar 

    for (i in data) { 
     var row = data[i]; 
     var title = row[1]; // Column with Title 
     var desc = row[15];  // Column with Next Steps 
     var date = row[5]; //Column with Date 
     var invite = row[2] //Column with PDC Chairs & IVN Owner 
     var sent = row[12] //Check Sent 
     sheet.getRange(data[i], 5).setNote(Sent) 


    cal.createAllDayEvent(title, new Date(date), {description:desc,guests:invite}); 
var Comment = dataRange(date).setNote("Inputted") 

ответ

1

Там проблема здесь:

sheet.getRange(data[i], 5) 

Первый параметр, который вы уже использовали, data[i], это массив (который вы уже приравнивали к row нескольким строкам ранее). Отклонение метода getRange(), которое вы ищете, ожидает двух чисел в качестве параметров. Если ваша цель в том, чтобы добавить примечание к колонке 5 строки в настоящее время ссылки в вашем цикле, то вы хотите:

sheet.getRange(i+startRow, 5).setNote(sent); 

Еще одна проблема с этой конкретной линии с Sent; Я предполагаю, что вы хотели бы ссылаться на переменную, которую вы установили равной row[12], чуть выше, в которой было маленькое письмо 's'.

Далее, есть что-то здесь не так:

var Comment = dataRange(date).setNote("Inputted") 

Что такое dataRange()? Если это не другая функция в сценарии, который возвращает объект Range, имеющие отношение к содержанию row[5], я предположил бы вы хотели это:

sheet.getRange(i+startRow, 5).setNote("Inputted"); 
+0

хорошо, вы читали код более глубоко, чем я; -) ... жаль, что слишком поверхностно на этом! –

+0

Привет, Могсдад, извини, я был в отпуске. Это работает, чтобы поместить его в мою первую строку, однако он не работает, когда он должен идти дальше вниз (я изменил numRows на 3, чтобы указать, что он пойдет для моих первых двух строк данных, а не первый). Есть ли рекомендации, которые вы можете дать? – user2087338

+0

Mogsdad, продолжал играть с этим, а также заметил, что он вставляет комментарии в 10 строк в i.e в строке 2, 12, 22 и т. Д., Когда я меняю numRow. Невозможно найти логическое объяснение в коде, чтобы он пропустил 10! – user2087338

0

sheet.getRange() потребность 2 целых числа в качестве параметров: номер строки и номер столбца.

В коде, который вы пытаетесь назначить массив (data [i]) в качестве строки nuber ... это не сработает.

Поскольку это расстояние от StartRow и так массива 0 индексируется я хотел бы предложить вам попробовать так:

sheet.getRange(startRow+i, 5).setNote(Sent) 
Смежные вопросы