Я хочу иметь возможность быстро и легко добавлять заметки (меню Вставка / Заметка) в несколько ячеек Google Sheets, используя значения ячеек в других столбцах на этом листе. Например, F3 будет получать значения ячеек в X3, F4 из X4. Но также, если я возьму G3, он получит значения в Y3 (поэтому он последовательно захватывает значения в одной и той же строке, но всегда одинаковое количество столбцов справа (в этом случае всегда 18 столбцов справа). Я хочу взять эти значения и вставить их в заметку слева (столбцы F, G и т. Д.). Я хотел бы выделить диапазон (F3-F10), запустить скрипт Google и захватит все значения на X3-X10 и прикрепит их к относительным строкам. Возможно ли это?
Я охотился за этой опцией, искал все возможные термины, и я довольно близко подошел, но я продолжаю зацикливаться на многих моментах, и самое важное - это возможность получить данные из равное количество столбцов справа, относительно диапазона, который я выделяю. Я нашел этот код , который приближает меня, но я не знаю, как отредактировать его, чтобы сделать то, что мне нужно. Это позволяет мне создать опцию меню, которая работает при извлечении значения A1 на первой вкладке моей электронной таблицы (я работаю над второй вкладкой, и она только собирает одни и те же данные для всех моих заметок). Вот код, над которым я работаю, но также и вторая функция, которая, на мой взгляд, обладает необходимыми мне функциями, такими как захват активного листа.
function noteSetter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0]; //I need to make this grab the right sheet
var cell = sheet.getRange(2, 2); //this and the line below it seem to be critical here...
cell.setNote(sheet.getRange(1,1).getValue());
}
//below gives me the menu option to run the script, but I'm open to changing this
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Set cell note",
functionName : "noteSetter"
}];
sheet.addMenu("Scripts", entries);
};
Вот еще один, который используется в этом посте, который имеет функции, которые, я думаю, мне нужны, но все же не дает мне относительную ссылку на ячейки.
function onEdit(e) {
var sheet = SpreadsheetApp.getActiveSheet();
if (sheet.getName() == "Project"){ //Change to your sheet name
var sourceRange = e.source.getActiveRange();
var sourceRow = sourceRange.getRow();
var sourceColumn = sourceRange.getColumn();
var sourceValue = sourceRange.getValue();
if(sourceColumn == 1){ //Change to the column you want to get the value from
var noteCell = sheet.getRange(sourceRow, 2); //The cell where the Note should be, B-column on the current row
noteCell.setNote(sourceValue);
}
}
}
Это то, где я сейчас нахожусь, но я, возможно, испортил некоторые вещи, так как это больше не работает.
function noteSetter() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var cell = sheet.getActiveRange();
cell.setNote(sheet.getRange(sourceRow, sourceColumn).getValue());
}
function onOpen() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
var entries = [{
name : "Set cell note",
functionName : "noteSetter"
}];
sheet.addMenu("Scripts", entries);
};
Любые предложения о том, как сделать эту работу?