Javascript getLastRow()在第68行停止

Javascript getLastRow()在第68行停止,javascript,google-sheets,Javascript,Google Sheets,我有一个函数,它应该从一个工作表中提取表单数据,然后将其添加到另一个工作表中,但它停止在第68行 function fData(){ const os = SpreadsheetApp.openById("ID of Sheet with data to copy"); const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Data"); const data

我有一个函数,它应该从一个工作表中提取表单数据,然后将其添加到另一个工作表中,但它停止在第68行

function fData(){
  const os = SpreadsheetApp.openById("ID of Sheet with data to copy");
  const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Data");
  const dataToCopy = os.getSheetByName("Form Data").getRange(1,1,os.getLastRow(),7).getValues();
  const dataDst = ss.getRange(1,1,os.getLastRow(),7).clearContent().setValues(dataToCopy);
//  Logger.log(dataToCopy);

}
当我在函数中显示的两个位置将os.getLastRow()更改为192时,所有信息都被正确复制。我不希望每次运行函数时都必须指定行数

我认为我的getLastRow()实现有问题,或者复制和粘贴工作表都有相同的名称,但我不确定这是否是问题的原因

以下是获得预期结果的解决方案。也许有更好的办法,但这是有效的

function fData(){
  const os = SpreadsheetApp.openById("ID of Sheet with data to copy");
  const ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Form Data");
  const dataToCopy = os.getSheetByName("Form Data").getDataRange().getValues();
  const lr = os.getSheetByName("Form Data").getDataRange().getLastRow();
  const dataDst = ss.getRange(1,1,lr,7).clearContent().setValues(dataToCopy);
//  Logger.log(dataToCopy);

}
我使用
getDataRange
提取数据,然后将lr定义为该数据集的最后一行。如果您只是将
getLastRow
的第一个实例替换为
getDataRange
,您会遇到一个错误,其中目标范围和数据集在行和列中不匹配,并且函数会推送一个错误。

getLastRow():这将获取Google工作表中包含数据的最后一行。它根据电子表格中所有列中最后可用的行值确定最后一行
getDataRange():这将获取范围,直到最后一行和最后一列,其中包含值

改为使用getDataRange()。其中一列的第68行中不能有数据

我将试一试,尽管该行中没有丢失的数据。