function copyRows() {
var sheet = SpreadsheetApp.getActiveSheet();
var startRow = 2; // First row of data to process
var numRows = sheet.getLastRow() - 1; // Number of rows to process
// Fetch the range of cells A2:B3
var dataRange = sheet.getRange(startRow, 1, numRows, 100);
dataRange.activate();
// Fetch values for each row in the Range.
var data = dataRange.getValues();
for (var i = 0; i < data.length; ++i) {
var row = data[i];
var emailAddress = row[1]; // First Column
var title = row[6];
if (title.contains("SVP" || "VP" || "Director" || "director" || "CEO" || "Founder" || "owner")) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var destination = ss.getSheetByName("Director's, VP's, CEOs, SVP's - MANUAL");
var range = destination.getRange("A2:D1000");
row.copyValuesToRange(startRow, 1, numRows, 100);
}
}
}
以下是电子表格的屏幕截图:
不确定我缺少什么,但代码似乎没有工作......说它有错误:
无法找到包含在对象中的函数Associate Account Strategist。
答案 0 :(得分:1)
错误信息不是骗你的。
Cannot find function contains in object Associate Account Strategist. ^^^^^^^^^^^^^^^^^ ^^^^^^^^^^^^^^^^^^^^^^^^^^^^
错误消息也会带有行号,这会指向解释器确定存在错误的位置。可能这一行:
if (title.contains("SVP" || "VP" || "Director" || "director" || "CEO" || "Founder" || "owner")) {
这是JavaScript和Google Apps脚本中的有效语法,但它没有按照您的想法执行。
错误消息显示您有一个对象包含&#34; Associate Account Strategist&#34; - 此时您的代码中的字符串来自row[6]
。您尝试使用String.contains()
方法。这是相当新的,在ECMA 6中引入 - 但Google Apps脚本尚未支持。这就是找不到名为contains
的函数的原因。
选项在How to check whether a string contains a substring in JavaScript?
中描述您尝试使用contains
的方式也不对。您的期望可能是您会发现title
是否包含&#34; SVP&#34;或&#34; VP&#34;等等。相反,会发生的是所有字符串将OR
组合在一起,评估为true
。然后,您将留下if (title.contains(true))...
,无论字符串title
是什么,它始终会评估相同的内容。您需要单独进行每次比较,可能是通过数组循环来减少代码。