[英]Is it possible to delete the content of specific rows by a macro in Google Sheets?
[英]Trying make a macro to delete last number of rows and columns in google sheets
我正在使用此腳本刪除當前google表格標簽中的最后一行和最后幾列,它顯示了“這些行超出范圍”。 錯誤。 我不知道為什么,當我使用整數而不是第二個參數時,它工作正常。
var spreadsheet = SpreadsheetApp.getActive();
var sheet = spreadsheet.getActiveSheet();
//Delete rows 201+
sheet.deleteRows(201, sheet.getLastRow() - 200 );
//Delete Columns 10+
sheet.deleteColumns(10, sheet.getLastColumn() - 9 );
越界錯誤與方法.deleteRows和.deleteColumns有關。 該錯誤是由於嘗試調用一個不存在的范圍而引起的。 無論是因為它試圖調用工作表中最大的單元格數量,還是因為它試圖調用第0個范圍甚至是一個負范圍,都在它的下面。 您無法調用.getRange(0,0),因為它不存在,並且會返回超出范圍的錯誤。 這里的問題是我無法為您提供解決方案,因為我沒有關於如何獲取某些變量的上下文。 我能做的是建議使用其他方法。 從您的代碼判斷,您只想刪除一個行和一個列。 使用.deleteRow(Row)@nd .deleteColumn(Column)可以更輕松地完成操作,這是文檔: https: //developers.google.com/apps-script/reference/spreadsheet/sheet#deleteColumn(Integer )和https: //developers.google.com/apps-script/reference/spreadsheet/sheet#deleteRow(Integer)如果這不能幫助您創建工作表副本,請刪除所有敏感信息並共享具有編輯權限的鏈接,以便我親自檢查您的代碼和電子表格,以更好地了解您的問題。
這里有一些簡單的腳本可能會對您有所幫助。
function delLastNRows(n){
var n=n || 3;//allows you to delete last three rows without passing function a parameter.
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var lr=sh.getLastRow();
if(lr>=n){
for(var i=0;i<n;i++){
sh.deleteRow(sh.getLastRow());
}
}
}
function delLastNCols(n){
var ss=SpreadsheetApp.getActive();
var sh=ss.getActiveSheet();
var lc=sh.getLastColumn();
if(lc>=n){
for(var i=0;i<n;i++){
sh.deleteColumn(sh.getLastColumn())
}
}
}
我找到了答案的人,我應該使用getMaxRows()來獲取工作表中的總行數,這是我使用的函數。
function delRows51() {
var ss = SpreadsheetApp.getActiveSheet();
ss.deleteRows(51, ss.getMaxRows() - 50);
};
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.