如何循环使用Google电子表格的列值并在B列中设置结果? [英] How to loop a google spreadsheet column values and set result in column B?

查看:117
本文介绍了如何循环使用Google电子表格的列值并在B列中设置结果?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我在A列中有一个网址列表,我想循环此A列并将每个网址的状态代码设置为B列.我尝试了此代码,但我一直得到未找到范围在脚本编辑器窗口中?我知道我必须将row的值添加到B列的名称中,但是我一直在收到此错误.有人可以告诉我如何解决此错误.谢谢.

i have a list of urls in column A and i want to loop this column A and set the status code for each url to column B. I tried this code but i keep getting Range not found in script editor window? i know i have to add the value of row to name of column B but i keep getting this error.could any one tell me how to fix this error .Thanks in advance.

function getStatus() {

    var queryString = Math.random();

  var ss = SpreadsheetApp.getActiveSpreadsheet(),
      sheet = ss.getSheetByName("Sheet1"),
      urls = sheet.getRange("A2:A").getValues(),

      row, len


  for (row = 0, len = urls.length; row < len; row++) {
    if (urls[row] != '') {

        var cellFunction1 = '=HTTPResponse("' + urls[row] + '?' + queryString + '")';
  SpreadsheetApp.getActiveSheet().getRange('"B"+row+').setValue(cellFunction1);

     } 
  }

  }

function HTTPResponse( uri )
{
 var response_code ;
try {
 response_code = UrlFetchApp .fetch( uri ) .getResponseCode() .toString() ;
 }
catch( error ) {
 response_code = error .toString() .match( / returned code (\d\d\d)\./ )[1] ;
 }
finally {
 return response_code ;
 }
}

推荐答案

可能有更好(更优雅)的方法,但是至少这似乎可行:

There are probably better (and more elegant) ways to do it, but at least this seems to work:

 function getStatus() {    

  var queryString = Math.random();    

  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName("Sheet1");

  var lastRow = sheet.getLastRow();
  var lastColumn = sheet.getLastColumn(); 
  var dataRange = sheet.getRange(2, 1, lastRow -1, lastColumn);
  var data = dataRange.getValues();
  var row = 0;
  var len = data.length;


  for (row; row < len; row++) {
    if (data[row] != '') {    

        var cellFunction1 = '=HTTPResponse("' + data[row][0] + '?' + queryString + '")';
        // change the following line, last number for another column
        var cell = sheet.getRange(row+2, 2);
        cell.setValue(cellFunction1);

     } 
  }    

  }    

function HTTPResponse( uri )
{
 var response_code ;
try {
 response_code = UrlFetchApp .fetch( uri ) .getResponseCode() .toString() ;
 }
catch( error ) {
 response_code = error .toString() .match( / returned code (\d\d\d)\./ )[1] ;
 }
finally {
 return response_code ;
 }
}

也许您可以从这里进行改进. 屏幕快照电子表格列

Maybe you can go from here and improve it. screenshot spreadsheet columns

这篇关于如何循环使用Google电子表格的列值并在B列中设置结果?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆