Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/google-sheets/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google apps script 谷歌工作表取消合并并填充(向下和向右)_Google Apps Script_Google Sheets - Fatal编程技术网

Google apps script 谷歌工作表取消合并并填充(向下和向右)

Google apps script 谷歌工作表取消合并并填充(向下和向右),google-apps-script,google-sheets,Google Apps Script,Google Sheets,我需要为不同的数据集取消合并并将原始值填充到未合并的单元格中 有些列包含不同行中的合并单元格 function myFunction() { var sheet = SpreadsheetApp.getActiveSheet(); var sheetRange = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns()); var mergedRanges = sheetRange.getMergedRanges();

我需要为不同的数据集取消合并并将原始值填充到未合并的单元格中

有些列包含不同行中的合并单元格

function myFunction() {
 var sheet = SpreadsheetApp.getActiveSheet();
 var sheetRange = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns());
 var mergedRanges = sheetRange.getMergedRanges();
 sheetRange.breakApart(); 
}

此代码可以很好地解除合并。不过,我需要填充取消合并后创建的新空单元格。

使用此问题的答案解决了此问题:


它会在您提供的范围内打断合并的单元格,然后将原始值填充到新创建的单元格。

请澄清您想要实现的目标。或者附上带有样本数据的工作表截图,以便理解。
function myFunction() {
  // It doesn't work instantaneously. I would take ~20 seconds depending on the size of your data.
  
  var sheet = SpreadsheetApp.getActiveSheet();
  
  // Get First three columns (you can change this part to adapt)
  var sheetRangeCol = sheet.getRange(1, 1, sheet.getMaxRows(), 3);
  
  // Get 2 raws starting with 4th (you can change this part to adapt)
  var sheetRangeRow = sheet.getRange(4, 1, 2, sheet.getMaxColumns());


  sheetRangeCol
  .getMergedRanges()
  .forEach(range => range.setValue(range.breakApart().getValue()));
  
  sheetRangeRow
  .getMergedRanges()
  .forEach(range => range.setValue(range.breakApart().getValue()));
}