Google脚本在Google Spreadsheet中选择整行

ana*_*ria 1 google-sheets google-apps-script

我想知道我们是否可以使用Google脚本在电子表格中选择一行,在此处输入图片描述

无论如何首先我已经通过使用此功能尝试使用列,但是我得到了数据错误(未找到):如果您有主意:)

  function testGetFullColumn()
{
  getFullColumn('A', 1) ;
}

// This function gets the full column Range like doing 'A1:A9999' in excel
// @param {String} column The column name to get ('A', 'G', etc)
// @param {Number} startIndex The row number to start from (1, 5, 15)
// @return {Range} The "Range" object containing the full column: https://developers.google.com/apps-script/class_range
function getFullColumn(column, startIndex){
  var sheet = SpreadsheetApp.getActiveSpreadsheet();
  var lastRow = sheet.getLastRow();
  return sheet.getRange(column+startIndex+':'+column+lastRow);
}
Run Code Online (Sandbox Code Playgroud)

编辑:我知道getRange,但我会很酷^^^^^^像我所附的照片一样直观地看到选择,因为我尝试过

var ss = SpreadsheetApp.getActiveSpreadsheet(); var sheet = ss.getSheets()[0]; return sheet.getDataRange();

它并没有在视觉上选择所有工作表,我的意思是我想看到一个交互式选择:)像 这里

编辑2:如您所建议,我尝试在getRange之后使用setActiveRange,谢谢Guilherme M,但是它不能直观地选择所有文档:(您的代码确实很酷^^ 恐怕无法选择,我会尝试做同样的感谢^^

 function testGet()
{
  var ss = SpreadsheetApp.getActiveSpreadsheet();
  var sheet = ss.getSheets()[0];
  var range =  sheet.getDataRange();
  SpreadsheetApp.setActiveRange(range)
}
Run Code Online (Sandbox Code Playgroud)

编辑3:要选择所有文档,我尝试过以下代码:

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var lastRow = sheet.getLastRow();
 var lastColumn = sheet.getLastColumn();

  var range = sheet.getRange(1,1,lastRow+1,lastColumn+1);
 sheet.setActiveRange(range);

 var selection = sheet.getSelection();
 // Current cell: A1
 var currentCell = selection.getCurrentCell();
 // Active Range: tout le document
 var activeRange = selection.getActiveRange();
Run Code Online (Sandbox Code Playgroud)

小智 5

是的,您可以使用Apps脚本在电子表格中选择一行或任何范围。您可以使用method进行操作setActiveRange()。下面是一个示例:

 var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
 var range = sheet.getRange('A1:D4');
 sheet.setActiveRange(range);

 var selection = sheet.getSelection();
 // Current cell: A1
 var currentCell = selection.getCurrentCell();
 // Active Range: A1:D4
 var activeRange = selection.getActiveRange();
Run Code Online (Sandbox Code Playgroud)

注意该方法getDataRange()选择范围“其中存在数据。”,因此它不会选择空白单元格或整个文档。对于此类任务,您需要getRange(row, column, numRows, numColumns)getMaxRows()和结合使用的方法getMaxColumns()

var sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet();
var range = sheet.getRange(1, 1, sheet.getMaxRows(), sheet.getMaxColumns());
sheet.setActiveRange(range);

var selection = sheet.getSelection();
// Current cell: A1
var currentCell = selection.getCurrentCell();
// Active Range: A1:D4
var activeRange = selection.getActiveRange();
Run Code Online (Sandbox Code Playgroud)

  • var Sheet = SpreadsheetApp.getActiveSpreadsheet().getActiveSheet(); var lastRow =sheet.getLastRow(); var lastColumn =sheet.getLastColumn(); var range =sheet.getRange(1,1,lastRow+1,lastColumn+1); sheet.setActiveRange(范围); var选择=sheet.getSelection(); // 当前单元格:A1 var currentCell = Selection.getCurrentCell(); // 活动范围:所有文档 var activeRange = Selection.getActiveRange(); 如果我不输入+1,我会收到数据定义错误,它找不到它,并且您还使用 currentCell 作为变量,我们必须输入它吗? (2认同)