删除行 - Google Apps 脚本 "Cannot find method deleteRow((class))"
Deleting Row - Google Apps Script "Cannot find method deleteRow((class))"
这是我的函数:
function deleteContact(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var wsname = ss.getRangeByName("contactName").getValue();
var wscl = ss.getSheetByName('Connection List');
var wsRange = wscl.getRange("A1:A").getValues();
for(var i = 0; i<wsRange.length;i++){
if(wsRange[i][0] == wsname){
var row = i+1; //This gets the row number
}
var ui = SpreadsheetApp.getUi();
var response = ui.alert("Are You Sure You Want To Delete " + wsname, ui.ButtonSet.YES_NO);
if (response == ui.Button.YES) {
var delr = wscl.deleteRow(row);
}
}
}
我能够获取行号,但是单击 'YES' 按钮后,出现此错误:
找不到方法 deleteRow((class)).
有什么建议吗?我希望函数删除它找到的行。
试试这个:
function deleteContact(){
var ss=SpreadsheetApp.getActive();
var wsname=ss.getRangeByName("contactName").getValue();
var wscl=ss.getSheetByName('Connection List');
var wsValues=wscl.getRange(1,1,wscl.getLastRow(),1).getValues();
var d=0;
for(var i=0;i<wsValues.length;i++){
if(wsValues[i][0]==wsname){
var row=i+1-d; //This gets the row number
var ui=SpreadsheetApp.getUi();
var response=ui.alert("Are You Sure You Want To Delete " + wsname, ui.ButtonSet.YES_NO);
if (response == ui.Button.YES) {
wscl.deleteRow(row);
d++;
}
}
}
}
当你删除行时,剩下的行每次都会向上移动一行,但数据是在删除行之前获取的,因此用于计算数据数组地址的索引必须由已删除的行。
您还有一些本应在 if(wsValues[i][0]==wsname){
范围内但不在范围内的行,所以我将它们移入,现在它只删除具有正确名称的行。
这是我的函数:
function deleteContact(){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var wsname = ss.getRangeByName("contactName").getValue();
var wscl = ss.getSheetByName('Connection List');
var wsRange = wscl.getRange("A1:A").getValues();
for(var i = 0; i<wsRange.length;i++){
if(wsRange[i][0] == wsname){
var row = i+1; //This gets the row number
}
var ui = SpreadsheetApp.getUi();
var response = ui.alert("Are You Sure You Want To Delete " + wsname, ui.ButtonSet.YES_NO);
if (response == ui.Button.YES) {
var delr = wscl.deleteRow(row);
}
}
}
我能够获取行号,但是单击 'YES' 按钮后,出现此错误:
找不到方法 deleteRow((class)).
有什么建议吗?我希望函数删除它找到的行。
试试这个:
function deleteContact(){
var ss=SpreadsheetApp.getActive();
var wsname=ss.getRangeByName("contactName").getValue();
var wscl=ss.getSheetByName('Connection List');
var wsValues=wscl.getRange(1,1,wscl.getLastRow(),1).getValues();
var d=0;
for(var i=0;i<wsValues.length;i++){
if(wsValues[i][0]==wsname){
var row=i+1-d; //This gets the row number
var ui=SpreadsheetApp.getUi();
var response=ui.alert("Are You Sure You Want To Delete " + wsname, ui.ButtonSet.YES_NO);
if (response == ui.Button.YES) {
wscl.deleteRow(row);
d++;
}
}
}
}
当你删除行时,剩下的行每次都会向上移动一行,但数据是在删除行之前获取的,因此用于计算数据数组地址的索引必须由已删除的行。
您还有一些本应在 if(wsValues[i][0]==wsname){
范围内但不在范围内的行,所以我将它们移入,现在它只删除具有正确名称的行。