2015-07-20 63 views
1
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); 
    } 
    } 
} 

另一個表下面是電子表格的截圖:複製行通過Appscript

screenshot

不知道我錯過了什麼,但代碼似乎沒有工作...說它有一個錯誤:

Cannot find function contains in object Associate Account Strategist.

+1

當您爲問題添加標籤時請注意。你已經使用了[[tag:appscript]]兩次。該標籤適用於某些Apple doo-dad。您想根據[Google Apps腳本支持頁面](https://developers.google.com/apps-script/support)中的說明,使用[[tag:google-apps-script]]標記您的問題。請修改你的標籤。您可能還需要[[tag:google-spreadsheet]]。 – Mogsdad

回答

1

錯誤消息不是騙你。

Cannot find function contains in object Associate Account Strategist. 
      ^^^^^^^^^^^^^^^^^   ^^^^^^^^^^^^^^^^^^^^^^^^^^^^ 

錯誤消息本來會帶有一個行號,它會指向解釋器確定存在錯誤的地方。可能是這條線:

if (title.contains("SVP" || "VP" || "Director" || "director" || "CEO" || "Founder" || "owner")) { 

這是JavaScript和Google Apps腳本中的有效語法,但它並沒有按照您的想法進行。

錯誤消息顯示您有一個包含「Associate Account Strategist」的對象 - 此時您的代碼中將是來自row[6]的字符串。您正在嘗試使用String.contains()方法。這是非常新的,在ECMA 6中引入 - 但不受Google Apps腳本支持。這就是爲什麼沒有找到名爲contains的函數。

選項在How to check whether a string contains a substring in JavaScript?

你正在嘗試使用contains的方式描述是不正確的,無論是。您的期望很可能是您會發現title是否包含「SVP」或「VP」等。相反,將會發生的情況是,所有字符串將一起爲OR'd,其將評估爲true。那麼你會留下if (title.contains(true))...,這將始終評估爲相同的事情,無論是什麼字符串title是。您需要分別進行每個比較,可能是通過數組循環來減少代碼。