Google Sheets 编写多个范围和多个条件的脚本

发布于 2025-01-17 18:14:32 字数 626 浏览 1 评论 0原文

我有一个电子表格,其中我需要脚本在两列上获取两个信息。如果这是真的,我会添加一个将“ 1天”添加到第三列中的公式。

我可以使条件单独运行。但是当我把两者都放置时,它们不起作用。

function fillColADia() {
  var s =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Afazeres');  
  var dataA = s.getRange("H1:H").getValues();
  var dataB = s.getRange("A1:A").getValues();
    for(var i=0; i<dataA.length; i++) {
      for(var j=0; j<dataB.lenght; j++) {
        if (dataB[j][0] == false) {
          if (dataA[i][0] == 'Zenon') {
          s.getRange(i+1,3).setValue("+1");
         }
        }
      }
    }
}

而且我也不知道如何将“添加1天”公式添加到最后。

非常感谢您的帮助。

I have a spreadsheet, in which I need the script to fetch, over two columns, two pieces of information. And when that's true, I add a formula that adds "1 day" into a third column.

I can make the conditionals run individually. But when I put both, they don't work.

function fillColADia() {
  var s =  SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Afazeres');  
  var dataA = s.getRange("H1:H").getValues();
  var dataB = s.getRange("A1:A").getValues();
    for(var i=0; i<dataA.length; i++) {
      for(var j=0; j<dataB.lenght; j++) {
        if (dataB[j][0] == false) {
          if (dataA[i][0] == 'Zenon') {
          s.getRange(i+1,3).setValue("+1");
         }
        }
      }
    }
}

And I also don't know how to add the "add 1 day" formula to the end.

Thanks a lot for the help.

COPY FILE with dummy data

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

烟─花易冷 2025-01-24 18:14:32

faaala!这些线条作为思考的食物!
...尽管我敢肯定,还有更多的表现方法可以实现它:

function fillColADia() {
  var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Page1');
  var data = s.getRange("A1:H").getValues();
  for (var a = 0; a < data.length; a++) {//Percorre cada linha do intervalo
    if (data[a][0] == false && data[a][7] == 'Zenon') {//Aplica critérios
      let date = data[a][2];//Pega a data daquela linha
      date1 = Utilities.formatDate(addDays(new Date(date), 1), Session.getTimeZone(), "dd/MM/yyyy");//Formata o objeto data, usando a função abaixo para incrementar o dia
      date2 = Utilities.formatDate(addDays(new Date(date), 1), Session.getTimeZone(), "dd/MM/yyyy HH:mmss");
      s.getRange(a + 1, 3).setValue(date1);//Põe a data de volta
      s.getRange(a + 1, 4).setValue(date2);//Põe a data de volta
    }
  }
}

//GERA DATAS INCREMENTANDO OS DIAS 
function addDays(date, days) {
  var result = new Date(date);
  result.setDate(result.getDate() + days);
  return result;
}

Faaala! Something along these lines as food for thought!
...although I'm certain there are more performant ways to accomplish it:

function fillColADia() {
  var s = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Page1');
  var data = s.getRange("A1:H").getValues();
  for (var a = 0; a < data.length; a++) {//Percorre cada linha do intervalo
    if (data[a][0] == false && data[a][7] == 'Zenon') {//Aplica critérios
      let date = data[a][2];//Pega a data daquela linha
      date1 = Utilities.formatDate(addDays(new Date(date), 1), Session.getTimeZone(), "dd/MM/yyyy");//Formata o objeto data, usando a função abaixo para incrementar o dia
      date2 = Utilities.formatDate(addDays(new Date(date), 1), Session.getTimeZone(), "dd/MM/yyyy HH:mmss");
      s.getRange(a + 1, 3).setValue(date1);//Põe a data de volta
      s.getRange(a + 1, 4).setValue(date2);//Põe a data de volta
    }
  }
}

//GERA DATAS INCREMENTANDO OS DIAS 
function addDays(date, days) {
  var result = new Date(date);
  result.setDate(result.getDate() + days);
  return result;
}
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文