2017-07-26 60 views
1

我想更多的功能到谷歌表脚本谷歌表格应用脚本距离计算器的增强功能

  1. 遍历的邮政编码

  2. 添加一列看看他们是空白

  3. 遍历距离

  4. 的一列看看他们是空白

  5. 如果一行的邮政编码单元格不是空白,则& &该单元格的距离为空白,然后调用一个函数,查找2个地址之间的距离。

  6. 将找到的距离的值插入该行的空白单元格中。

这是我的代码;它是抛出一个错误,说明我错过了“)”在第三行,但我不知道为什么。请帮忙!

`function autoDistance(){ 
var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
var zipValue = sheet.getRange(W2:W); 
var distanceCell = sheet.getRange(Y2:Y); 

for (var i=1;i<zipValue.length;i++){ 
    var emptyShipZip = isBlank(zipValue[i][22]); 
    var emptyDistVal = isBlank(distanceCell[i][24]) 
    if(emptyShipZip==false && emptyDistVal==true){ 
    var finalDist = drivingDistance(zipValue[i][22].value,"12517 NE 91st Avenue Okeechobee, FL 34972"); 
    return distanceCell[i][24].setValue(finalDist); 
} 
else{ 
    break;  
} 

}` 
+1

这不是有效的JavaScript。您需要将范围放在引号中:'sheet.getRange(“W2:W”)' –

+0

此外,调用getRange(...)后,需要调用getValues()。 – terrywb

回答

1

尝试......

function autoDistance() { 
    //var sheet = SpreadsheetApp.openById("<<spreadsheet id>>").getSheetByName("<<Sheet1>>"); 
    var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); 
    var sheetValues = sheet.getRange(2, 23, sheet.getLastRow() - 1, 2).getValues(); 
    for (var i = 0; i < sheetValues.length; i++) { 
     var shipZip = sheetValues[i][0]; 
     var distVal = sheetValues[i][1]; 
     if (shipZip != "" && distVal == "") { 
      var finalDist = drivingDistance(shipZip, "12517 NE 91st Avenue Okeechobee, FL 34972"); 
      sheet.getRange(i + 2, 24, 1, 1).setValue(finalDist); 
     } 
    } 
}