Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/google-apps-script/5.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

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,我正试图复制并粘贴A4:J4和A5:H5,但由于A5被合并,所以出现了一个错误。第3阶段仅在第2页的G4中粘贴。如何将此数据复制并粘贴到具有合并单元格的Sheet2 function hi() { var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1'); var yourRange = sheet.getRange("A4"); var ss = SpreadsheetApp.getActiveSpread

我正试图复制并粘贴A4:J4和A5:H5,但由于A5被合并,所以出现了一个错误。第3阶段仅在第2页的G4中粘贴。如何将此数据复制并粘贴到具有合并单元格的Sheet2

function hi()
{
   var sheet = SpreadsheetApp.getActive().getSheetByName('Sheet1');
   var yourRange = sheet.getRange("A4");
   var ss = SpreadsheetApp.getActiveSpreadsheet();
   var destSheet = ss.getSheetByName('Sheet2');
   var yourLastColumn=sheet.getRange("A4:4").getLastColumn();
   var range = ss.getRangeByName("A4");
   var yourLastRange=sheet.getRange("A4").offset(0, yourLastColumn-1);
   var rsltRange1 = yourLastRange.getNextDataCell(SpreadsheetApp.Direction.PREVIOUS);
   var rsltRange2 = sheet.getRange("A4:" + rsltRange1.getA1Notation()); 
  if (rsltRange2.isPartOfMerge()) {
    var rangeTest = rsltRange2.getMergedRanges()[0];
  } else {
  }
   Logger.log(rangeTest.getA1Notation());
   var destRange = destSheet.getRange("A4");
   rsltRange2.copyTo(destRange, {contentsOnly: false});
 }

以下是代码的简化版本,无论是否合并范围,都应正确复制范围:

function hi(){
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheetByName('Sheet1');
  var destSheet = ss.getSheetByName('Sheet2');
  var startColumn=1;
  var startRow=4;
  var numRows=2;
  var numColumns=sheet.getLastColumn()-startColumn+1;
  var range=sheet.getRange(startRow, startColumn, numRows, numColumns);
  var destRange = destSheet.getRange("A4");
  range.copyTo(destRange);
 }

谢谢你,zignotschka!