- Вы хотите извлечь значения
snippet.title
и statistics.viewCount
из идентификаторов, введенных в «A2: A7», и поместить результат в «B2: C7». - Когда сценарийиспользуется как
var vid = sheet.getRange("A2").getValue()
и sheet.getRange("B2:C2").setValues([info])
, работает нормально.
Если мое понимание верно, как насчет этой модификации?
Точки модификации:
sheet.getRange("A2:A7").getValue()
извлекает только значение "A2". - В текущем сценарии, когда запускается
sheet.getRange("B2:C7").setValues([info])
, он пытается поместить значение 1 строки и 2 столбцов в ячейки 6строки и 2 столбца.При этом возникает такая ошибка.
Требуется извлечь значения из ячеек "A2: A7" и поместить значения из 6 строк и 2 столбцов в "B2: C7".
Модифицированный скрипт:
Пожалуйста, измените ваш скрипт следующим образом.
function getVideoInfo() {
var sheet = SpreadsheetApp.getActiveSheet();
var vid = sheet.getRange("A2:A7").getValues();
var info = vid.map(function(e) {
var data = YouTube.Videos.list('snippet, statistics', {id: e});
var item = data.items[0];
return [item.snippet.title, item.statistics.viewCount];
});
sheet.getRange("B2:C7").setValues(info);
}
Ссылки:
Если я неправильно понял ваш вопрос, пожалуйста, сообщите мне.Я хотел бы изменить его.
Edit1:
Если я изменю скрипт, чтобы посмотреть на все ячейки в диапазоне A: A, и не иметь значения в ячейкев диапазоне A: AI получает следующую ошибку.TypeError: Cannot read property "snippet" from undefined. (line 7, file "Code")
.Я хотел бы иметь возможность иметь ячейки в диапазоне A: пробел и все еще запускать скрипт.
О ваш новый вопрос , когда естьпустые ячейки в столбце «A», вы хотите поместить пустые значения в столбцы «B» и «C».Я так понял.Таким образом, я изменил свой скрипт.
Измененный скрипт:
function getVideoInfo() {
var sheet = SpreadsheetApp.getActiveSheet();
var vid = sheet.getRange("A:A").getValues(); // Modified
var info = vid.map(function(e) {
if (e) { // Added
var data = YouTube.Videos.list('snippet, statistics', {id: e});
var item = data.items[0];
return [item.snippet.title, item.statistics.viewCount];
}
return ["",""]; // Added
});
sheet.getRange("B:C").setValues(info); // Modified
}
Edit2:
Я получаю следующую ошибку TypeError: Cannot read property "snippet" from undefined. (line 8, file "Code")
при наличии идентификаторовв A2:A7
, но не в A8
Начиная с do not have a value in a cell in range A:A I get the following error.
, я понял, что в столбце «А» есть несколько пустых ячеек.Но из вашего комментария считается, что проблема заключается в значении ячейки.Поэтому, когда ошибка возникает в var data = YouTube.Videos.list('snippet, statistics', {id: e})
, я модифицировал скрипт, чтобы игнорировать ошибку.
Модифицированный скрипт:
function getVideoInfo() {
var sheet = SpreadsheetApp.getActiveSheet();
var vid = sheet.getRange("A:A").getValues(); // Modified
var info = vid.map(function(e) {
if (e) {
try { // Added
var data = YouTube.Videos.list('snippet, statistics', {id: e});
var item = data.items[0];
return [item.snippet.title, item.statistics.viewCount];
} catch(er) { // Added
return ["",""];
}
}
return ["",""];
});
sheet.getRange("B:C").setValues(info); // Modified
}