【问题标题】:Is there a way to dynamically merge cells that contain specific text in Google Sheets?有没有办法在 Google 表格中动态合并包含特定文本的单元格?
【发布时间】:2019-11-21 03:50:31
【问题描述】:

我有一个使用 importrange 动态填充六列的 Google 表格跟踪器。我正在导入的数据中有五个类别标题,我希望在所有六列中动态合并,而不是仅仅填充“A”列。我不想在发送每日更新电子邮件之前手动合并这五个单元格,而是想找到一种方法让这些单元格根据每个单元格中的唯一文本字符串自动合并。

我不精通 google 脚本,但是一些搜索已经产生了这段代码作为开始。它不断返回该范围的未定义值,我不明白为什么会这样。先感谢您!

function FormatCells() {
  var ss = SpreadsheetApp.getActive()
  var s = ss.getSheetByName("Copy of National Region Tracker ");
  var range = s.getDataRange("A2:A");
  var values = range.getValues();
  //something wrong with following line not sure what you want
  for( var row = values.length -1; [row][0]; ) {
    if (values[row][1] == 'Upcoming Meetings') {
      s.getRange(row+0,0,1,6).mergeAcross();
    }
  }
}

【问题讨论】:

  • 在这种情况下,范围合并不起作用,因为标题的位置会根据动态导入的数据而变化,即“即将召开的会议”并不总是在单元格 A3 中,因为其中的数据量很大之前的类别。
  • 你是怎么调用上面的函数的?
  • 函数 FormatCells() ?你指的是这个吗?
  • 你是怎么调用上面的函数的?您在循环之后缺少一个括号,而且我真的不符合条件或您在循环中的最终表达式。

标签: google-apps-script google-sheets google-sheets-formula


【解决方案1】:

我想这就是你要找的东西:

function FormatCells() {
  var ss=SpreadsheetApp.getActive()
  var s=ss.getSheetByName("Copy of National Region Tracker");
  var r=s.getRange(2,1,s.getLastRow()-1,1);
  var values=r.getValues();
  for(var i=0;i<values.length;i++) {
    if (values[i][0]=='Upcoming Meetings') {
      s.getRange(i+2,1,1,6).mergeAcross();
    }
  }
}

【讨论】:

    猜你喜欢
    • 2023-02-25
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-12-09
    相关资源
    最近更新 更多