JS的新手。该代码查看YouTube ID“ A2”,并提供视频标题和总观看次数。此功能适用于“ A2”中列出的一个ID,但我无法使其与范围配合使用。
我尝试调整范围并使用行和列格式。
例如,将单元格扩展到第7行,如下所示,该错误提示“范围高度不正确,为1,但应为6(第7行,文件“代码”)”
function getVideoInfo() {
var sheet = SpreadsheetApp.getActiveSheet();
var vid = sheet.getRange("A2:A7").getValue();
var data = YouTube.Videos.list('snippet, statistics', {id: vid});
var item = data.items[0];
var info = [item.snippet.title, item.statistics.viewCount];
sheet.getRange("B2:C7").setValues([info]);
}
我还尝试将数据项调整为[0]以外的数字
答案 0 :(得分:0)
snippet.title
和statistics.viewCount
的值,并将结果放入“ 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);
}
如果我误解了您的问题,请告诉我。我想修改它。
如果我更改脚本以查看A:A范围内的所有单元格,而在A:A范围内的单元格中没有值,则会收到以下错误。
TypeError: Cannot read property "snippet" from undefined. (line 7, file "Code")
。我希望能够将单元格A设为空白:仍然运行脚本。
关于your new question,当“ 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
}
当
TypeError: Cannot read property "snippet" from undefined. (line 8, file "Code")
中有ID但A2:A7
中没有ID时,出现以下错误A8
根据do not have a value in a cell in range A:A I get the following error.
,我了解到“ A”列中有几个空单元格。但是从您的评论来看,我们认为问题在于电池的价值。因此,当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
}