获取合并范围内的单元格的值

时间:2016-03-25 21:02:06

标签: google-apps-script google-sheets

我正在迭代一张工作表中的一列,其中包含分布在几行上的合并单元格。 E.g。

        |-----
 row 1  |  5
        |-----
 row 2  |
 row 3  |  3
 row 4  |
        |-----
 row 5  |
        |-----
 row 6  |  1
        |-----

我在这里使用合并来显示多个单元共享的单个值。

问题在于,当我尝试收集数据并且我正在使用Range.getValues()时,只有合并范围中的第一个单元格具有非空值(在示例['5','3','','','','','1']中) ,所以我不知道哪些单元格实际上是空的,哪些单元格属于合并范围。

我找到here的唯一解决方法是为所有颜色着色并查看单元格的颜色(但这非常难看)。

有什么好方法可以解决这个问题吗?

1 个答案:

答案 0 :(得分:0)

另外一种可行的解决方法是设置然后获得水平对齐。

此代码:

function GetMyRange() {
      var sheet = SpreadsheetApp.getActiveSheet();
      var range1 = sheet.getRange("A1:A6");
      range1.setHorizontalAlignment("right");
      var vals = range1.getValues();
      var alignment = range1.getHorizontalAlignments();


      Logger.log(vals);
      Logger.log(alignment);
    }

给出了结果:

[[5.0], [3.0], [], [], [], [1.0]]

[[right], [right], [general], [general], [right], [right]]

从起始范围:

        |-----
 row 1  |  5
        |-----
 row 2  |
 row 3  |  3
 row 4  |
        |-----
 row 5  |
        |-----
 row 6  |  1
        |-----

“一般”对齐的单元格将为您提供合并范围的答案。