Google apps script TypeError:在对象中找不到函数getDataRange

Google apps script TypeError:在对象中找不到函数getDataRange,google-apps-script,google-sheets,Google Apps Script,Google Sheets,我正在尝试创建一个脚本,该脚本将在整个工作簿“a”和工作簿“B”中搜索重复值,然后从工作簿“a”中的位置删除包含重复值的行 然而,当运行脚本时,我得到一个错误“TypeError:在对象中找不到函数getDataRange”,我不知道为什么 我正在编写的脚本如下: function deleteRowInSpreadsheet1() { var s1 =SpreadsheetApp.openById("1pxWr3jOYZbcwlFR7igpSWa9BKCa2tTeliE8FwFCRTc

我正在尝试创建一个脚本,该脚本将在整个工作簿“a”和工作簿“B”中搜索重复值,然后从工作簿“a”中的位置删除包含重复值的行

然而,当运行脚本时,我得到一个错误“TypeError:在对象中找不到函数getDataRange”,我不知道为什么

我正在编写的脚本如下:

   function deleteRowInSpreadsheet1() { 
var s1 =SpreadsheetApp.openById("1pxWr3jOYZbcwlFR7igpSWa9BKCa2tTeliE8FwFCRTcQ").getSheets();
var s2 = SpreadsheetApp.openById("18jLxZlge_UFkdTjlO6opuDk1VKeezhEPLe9B7n1OfQs").getSheets(); 
var values1 = s1.getDataRange().getValues();
var values2 = s2.getDataRange().getValues();
var resultArray = [];
for(var n in values2){
var keep = true
for(var p in values1){
  if( values1[n][0] == values1[p][0] && values2[n][1] == values1[p][1]){
    keep=false ; break ;
  }
}
if(keep){ resultArray.push(values2[n])};
}
s1.clear()
s1.getRange(1,1,resultArray.length,resultArray[0].length).setValues(resultArray);
}
排队

var s1 =SpreadsheetApp.openById("RTcQ").getSheets();
var s2 = SpreadsheetApp.openById("7fQs").getSheets();
使用
.getSheets()
方法返回一个包含该电子表格中所有工作表的对象。无法获取此对象的数据范围

相反,您应该使用
.getActiveSheet()
.getSheetByName()

排队

var s1 =SpreadsheetApp.openById("RTcQ").getSheets();
var s2 = SpreadsheetApp.openById("7fQs").getSheets();
使用
.getSheets()
方法返回一个包含该电子表格中所有工作表的对象。无法获取此对象的数据范围

相反,您应该使用
.getActiveSheet()
.getSheetByName()


您正在调用
getSheets()
,它返回一个工作表数组。因此,您需要遍历每个工作表,然后调用
getDataRange()

例如:

var s1 =SpreadsheetApp.openById("1pxWr3jOYZbcwlFR7igpSWa9BKCa2tTeliE8FwFCRTcQ").getSheets();
for (var i=0; i<s1.length; i++) {
  var values = s1[i].getDataRange().getValues();
}
var s1=SpreadsheetApp.openById(“1pxWr3jOYZbcwlFR7igpSWa9BKCa2tTeliE8FwFCRTcQ”).getSheets();

对于(var i=0;i您正在调用
getSheets()
,它返回一个工作表数组。因此,您需要循环遍历每个工作表,然后调用
getDataRange()

例如:

var s1 =SpreadsheetApp.openById("1pxWr3jOYZbcwlFR7igpSWa9BKCa2tTeliE8FwFCRTcQ").getSheets();
for (var i=0; i<s1.length; i++) {
  var values = s1[i].getDataRange().getValues();
}
var s1=SpreadsheetApp.openById(“1pxWr3jOYZbcwlFR7igpSWa9BKCa2tTeliE8FwFCRTcQ”).getSheets();

对于(var i=0;iHi感谢您的回复,我唯一的问题是每天都有大量用户添加新的工作表,这意味着我必须每天更改脚本,以便在脚本中添加和删除工作表名称。我试图实现的是请求工作表列表,然后在一个页面上搜索工作表以查找重复的值其他工作簿,然后从第一个工作簿中删除。抱歉,我完全错过了操作的“整个”部分!您好,谢谢您的回复,我唯一的问题是每天都有大量用户添加新工作表,这意味着我必须每天更改脚本,以便在脚本中添加和删除工作表名称。我正在尝试的是o实现是要求提供一个工作表列表,然后在另一个工作簿上搜索工作表中的重复值,然后从第一个工作簿中删除。对不起,我完全错过了操作的“全部”部分!完美,让我克服了那个问题,但现在它又抛出了另一个,我认为还有更多的工作要做。完美,让我克服了那个问题,但现在是它我想还有更多的工作要做。