我使用Google Script的经验很少,但我试图用它来搜索电子表格的一列,并查找字符串“Film Dub”的所有实例(知道每个单元格只能有一个)。 / p>
以下是我的代码:
function filmDub() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < 100; i++) {
var s = data[i][2].toString();
if (s.includes('Film Dub')) {
data[5][13]++;
}
}
}
但是我一直收到错误
TypeError: Cannot find function includes in object Let's Make A Date, Film Dub, Three Headed Broadway Star, Film TV Theater Styles, Greatest Hits, World's Worst. (line 6, file "Code")
“让我们制作一个日期,电影配音,三首百老汇明星,电影电视剧风格,最精彩的点击,世界上最糟糕的”是data[i][2]
的正确内容所以它是正确的来自电子表格的信息。我在Google脚本编辑器中使用了调试器来验证s
是一个字符串(这是Stack Overflow上类似问题的解决方案之一),但这并没有解决我的问题。还有什么可能是错的?
答案 0 :(得分:7)
您应该使用indexOf和字符串来检查是否存在文本块。
function filmDub() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < 100; i++) {
var s = data[i][2].toString();
if (s.indexOf('Film Dub') !== -1) {
data[5][13]++;
}
}
}
答案 1 :(得分:1)
进一步检查后,仔细检查您的纸张是如何形成的。这就是我构建工作表以使代码正常工作的方式。
[A] [B] [C]
[1]Let's Make A Date Film Dub Three Headed Broadway Star
[0] [1] [2]
这是你的代码:
function filmDub() {
var sheet = SpreadsheetApp.getActiveSheet();
var data = sheet.getDataRange().getValues();
for (var i = 1; i < 10; i++) {
var s = data[i][2].toString();
//Logger.log(s);
if (s.indexOf("Film Dub")> -1) {
Logger.log("Horray");
}
}
}
希望这有帮助!
答案 2 :(得分:1)
您只需要启用应用脚本的v8引擎。
然后运行。
启用v8引擎之前,我遇到了同样的错误。
答案 3 :(得分:0)
确保工作表正在运行最新版本的Apps脚本。当您打开脚本编辑器时,您应该在顶部看到一个黄色的提示:“此项目正在由Chrome V8驱动的新的Apps Script运行时上运行。”如果没有,应该有一个启用它的选项。包含功能是Sheets脚本的新增功能。您需要为打算使用它的每个工作表单独启用它。
答案 4 :(得分:-1)
我不是Google Apps脚本专家,但我知道它的javascript,所以为什么不使用以下JS方法:
if(s.indexOf('Film Dub') > -1)