Javascript getLastRow()在第68行停止
我有一个函数,它应该从一个工作表中提取表单数据,然后将其添加到另一个工作表中,但它停止在第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
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行中不能有数据
我将试一试,尽管该行中没有丢失的数据。