Google apps script 从一个工作表中复制查询函数的结果,并将其附加到另一个工作表的末尾的不同文件中

Google apps script 从一个工作表中复制查询函数的结果,并将其附加到另一个工作表的末尾的不同文件中,google-apps-script,Google Apps Script,是否可以从google工作表中选择查询(=查询(Dom,“选择*其中G不为空”)函数的结果,并将其附加到另一个google工作表的末尾? 错误:“找不到方法openById(string,string)。我基本上在两个不同的位置有两个google工作表,它们都是平面文件格式。 我没有编码经验,已经尝试解决这个问题好几个星期了,如果有人能帮助我,我将非常感激 function Dom() { var spreadsheet = SpreadsheetApp.getActive(); sprea

是否可以从google工作表中选择查询(=查询(Dom,“选择*其中G不为空”)函数的结果,并将其附加到另一个google工作表的末尾? 错误:“找不到方法openById(string,string)。我基本上在两个不同的位置有两个google工作表,它们都是平面文件格式。 我没有编码经验,已经尝试解决这个问题好几个星期了,如果有人能帮助我,我将非常感激

function Dom() {
var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getSheetByName('Dom_Sum').showSheet()
  .activate();
  spreadsheet.setActiveSheet(spreadsheet.getSheetByName('Dom_Sum'), true);

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getCurrentCell().offset(1, 0).activate();
  var currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.DOWN).activate();
  currentCell.activateAsCurrentCell();
  currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
  currentCell.activateAsCurrentCell();
  currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
  currentCell.activateAsCurrentCell();
  currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
  currentCell.activateAsCurrentCell();
  currentCell = spreadsheet.getCurrentCell();
  spreadsheet.getSelection().getNextDataRange(SpreadsheetApp.Direction.NEXT).activate();
  currentCell.activateAsCurrentCell();


 var source = SpreadsheetApp.getActiveSpreadsheet();
 var sheet = source.getSheets()[0];
 var destination = SpreadsheetApp.openById("17J0_YiUANs9CZNmq2tqqvwjdAT2P8IVcx3NYljhqTFk","Master_Db!A1");
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.DOWN).activate();
  spreadsheet.getCurrentCell().getNextDataCell(SpreadsheetApp.Direction.UP).activate();
  spreadsheet.getCurrentCell().offset(1, 0).activate();
 sheet.copyTo(destination);


  spreadsheet.getSheetByName('Dom_Sum').hideSheet()

  var spreadsheet = SpreadsheetApp.getActive();
  spreadsheet.getSheetByName('Indent Form_Dom').showSheet()
  .activate();
  spreadsheet.getRangeList(['C4:D9', 'A12:M112']).activate()
  .clear({contentsOnly: true, skipFilteredRows: true});
  spreadsheet.getRange('C4').activate();


};

当它只允许一个参数时,为提供两个参数

另外,如果我理解正确,您只需要将(非空)数据从G列复制到另一个工作表

如果是这样,您可以尝试以下方法:

function Dom() {
  var origin_sheet = SpreadsheetApp.getActive().getSheetByName('Dom_Sum');
  var firstRow = 1;
  var firstCol = 7;
  var numRows = origin_sheet.getLastRow();
  var numCols = 1;
  var origin_values = origin_sheet.getRange(firstRow, firstCol, numRows, numCols).getValues();
  var dest_values = [];
  for(var i = 0; i < origin_values.length; i++) {
    if(origin_values[i][0] != '') {
      dest_values.push(origin_values[i]);
    }
  }
  var dest_id = "1ZGq7L7bvF1INuDgZxhHnVsihkYkYubmncSAE5uC-Pq4";
  var dest_sheet = SpreadsheetApp.openById(dest_id).getSheetByName("Master_Db");
  var numRowsDest = dest_values.length;
  var dest_range = dest_sheet.getRange(1, 1, numRowsDest, 1);
  dest_range.setValues(dest_values);
}
函数Dom(){
var origin_sheet=SpreadsheetApp.getActive().getSheetByName('Dom_Sum');
var firstRow=1;
var-firstCol=7;
var numRows=origin_sheet.getLastRow();
var numCols=1;
var origin_values=origin_sheet.getRange(第一行、第一列、numRows、numCols).getValues();
var dest_值=[];
对于(变量i=0;i

如果这不是您想要的,我很抱歉。

您的错误是什么?代码在哪里失败?您的数据是什么样子的?我们需要更多信息。错误:“找不到方法openById(string,string)。我基本上在两个不同的位置有两张谷歌表单,它们都是平面文件格式。将此添加到您的问题中,以便有可能获得答案的人可以更轻松地评估情况。嗨,OMila,我非常感谢您关注我的问题。您的方法感觉绝对正确,但是,我只获取dest_表中G列的数据。另外,我希望在下面添加新的数据行,当前它覆盖了以前的数据。我相信我错过了一些愚蠢的事情。我们可以转接吗?boseav@gmail.comI只需要在现有数据(如果有的话)下面追加行(不带标题)。请帮帮我@OMila,我再也受不了这种焦虑了!你好,Avishek Bose,出于文档的目的,请提出另一个问题,解释您到底想做什么,并将我的答案标记为正确。