【问题标题】:How can Google sheets loop multiple cells through sheets?谷歌表格如何通过表格循环多个单元格?
【发布时间】:2021-02-17 16:55:46
【问题描述】:

我有这段代码可以在 Google 表格中重复一个值(C22):

function onEdit(e) { 
  let range = e.range;
  if(range.getA1Notation().toLowerCase() === "c22".toLowerCase()) { 
    const rangeValue = range.getValue() 
    const sheets = SpreadsheetApp.getActive().getSheets() 
    for(let sheet of sheets) { 
      sheet.getRange(range.getA1Notation()).setValue(rangeValue) 
    }
  }
} 

但我希望 C21 完全一样。上面的代码需要什么格式?

【问题讨论】:

  • 不幸的是,将代码从一种语言转换为另一种语言被认为超出了 Stack Overflow 的范围。
  • @braX - stackExchange 组中的哪一个是这样的地方?谢谢
  • 我不知道。这是一个非常短的脚本,那么为什么不利用这个机会来学习如何一个一个地完成每个部分呢?您似乎可以使用 google-sheets 标签在 Stack Overflow 中寻求帮助,但不要在您的问题中添加标签 VBA 或包含 VBA 代码。我将首先查看如何在 google-sheets 中触发类似的“工作表更改”事件并在其中放置一个弹出框。一旦它工作,看看如何做剩下的事情。
  • @braX - 感谢您的回答。这很简短,我允许自己帮助那个人……如果这里以某种方式被禁止,请告诉我,我会删除我的评论。这是脚本: function onEdit(e) { let range = e.range; if(range.getA1Notation().toLowerCase() === "c22".toLowerCase()){ const rangeValue = range.getValue() const sheet = SpreadsheetApp.getActive().getSheets() for(let sheet of sheet) { sheet.getRange(range.getA1Notation()).setValue(rangeValue) } } }
  • 你试过用"c21"替换"c22"吗?我错过了什么?您需要它为 C21 C22 运行,还是只为 C21 运行?

标签: google-apps-script google-sheets


【解决方案1】:

试试这个

function onEdit(e) {
const range = e.range.getA1Notation();
const cells = ["C21", "C22"];
  if (cells.includes(range)) {
    e.source.getSheets().forEach(s => {
      if (s.getName() !== e.source.getActiveSheet().getName())
      s.getRange(range).setValue(e.value);
    })
  }
} 

【讨论】:

  • 谢谢。明天试试那个我会告诉你的。
  • 完美运行!谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2014-09-03
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-05-28
相关资源
最近更新 更多