在谷歌电子表格中循环单元格

Looping through cells in Google Spreadsheet

本文关键字:循环 单元格 电子表格 谷歌      更新时间:2023-09-26

我一直忙于在谷歌电子表格中使用内置javascript,但由于没有使用javascript或谷歌电子表格,我遇到了一些困难。

我的脚本应该读取一个单元格中的数字(1-3),并从该数字解析一个图像到下面的单元格(我一直在使用setFormula命令)。

到目前为止,它只适用于1个单元格(我现在选择的是B6),但我想在每隔一个单元格中循环一列数字(这样脚本运行后,它就是数字图片、数字图片等)——我就是不知道怎么做。

我现在使用的代码:

    function numbtoimage() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var url = 'IMAGE("https://dl.dropboxusercontent.com/s/bpqy8o796casqjl/belt.JPG?dl=0", 2)';
var url2 = 'IMAGE("https://dl.dropboxusercontent.com/s/4q8sakhkpot0h65/belt2.JPG?dl=0",2)';
var url3 = 'IMAGE("https://dl.dropboxusercontent.com/s/kvsf4z6z45rcg53/belt3.JPG?dl=0",2)';
var cell = sheet.getRange("B6")
var data = cell.getValue()
if(data==1) {cell.offset(1, 0, 1).setFormula(url);}
else if(data==2) {cell.offset(1, 0, 1).setFormula(url2);}
else if(data==3) {cell.offset(1, 0, 1).setFormula(url3);}
}

我研究过这个类似的问题,但一直无法使其适用于我的案例。

非常感谢您的帮助!

  • 尼克拉斯

您需要某种循环来遍历数据。我建议使用FOR循环。当前编写脚本是为了获取一个单元格值,而不是所有值。因此,一次获取所有值,然后检查其中的内容可能是一个想法。

同样,从你的问题来看,还不清楚在哪里可以找到这些数字。只在B列?

这里有一个快速的例子(未测试),它穿过B列寻找一个数字,它应该根据这个数字在下面的单元格中插入链接。这段代码基于您的原始示例,未经测试,但希望它能有所帮助。

function numbtoimage() {
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var url = 'IMAGE("https://dl.dropboxusercontent.com/s/bpqy8o796casqjl/belt.JPG?dl=0", 2)';
  var url2 = 'IMAGE("https://dl.dropboxusercontent.com/s/4q8sakhkpot0h65/belt2.JPG?dl=0",2)';
  var url3 = 'IMAGE("https://dl.dropboxusercontent.com/s/kvsf4z6z45rcg53/belt3.JPG?dl=0",2)';
  var values = sheet.getValues();
  for(i=0; i < values.lenth ; i++){
    if(values[i][1]==1) {sheet.getRange(i+2, 2).setFormula(url);}
    else if(values[i][1]==2) {sheet.getRange(i+2, 2).setFormula(url2);}
    else if(values[i][1]==3) {sheet.getRange(i+2, 2).setFormula(url3);}
  }
}