我正在尝试调用以下内容:
var range5 = SpreadsheetApp.getActiveSheet().getRange(range1:range3);
其中range1 = "C590"
(字符串值)和range3 = "O594"
(字符串值)(先前在脚本中找到)
但是我得到了错误:
缺少),位于参数列表之后
range5
行。是否可以通过两个字符串作为范围?
答案 0 :(得分:0)
发问者对此代码行有疑问
var range5 = SpreadsheetApp.getActiveSheet().getRange(range1:range3);
这行代码本来可以工作:
var range5 = SpreadsheetApp.getActiveSheet().getRange(range1+":"+range3);
这里的主要内容是如何将变量添加/分配给命令,以及如何在变量之间添加分隔符。
getRange
至少有四个变体,但最基本的是“ getRange('单元格/范围地址')”。如上所示,可以将变量和分隔符连接起来以创建有效范围。
但是还有 个其他选项。在这种情况下,最明显的是getRange(row, column, numRows, numColumns)
。这需要整数参数,但是getRow
和getColumn
可用于分解每个字符串。
下面的代码是将范围作为字符串管理的示例。
每个字符串分别用于创建特定范围的参数。
步骤#1-getRange
中使用了range1的字符串。这允许...
步骤#2和#3-获取范围的行和列整数。
步骤#4-对range3重复
步骤5-现在我们可以使用“ getRange(行,列,行,行,列)”获得range5。值是从步骤1到步骤4提供/计算的。
function so_52759685() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var range1 = "C590";
var rangeone = sheet.getRange(range1);
var rangeonerow = rangeone.getRow();
var rangeonecolumn = rangeone.getColumn();
Logger.log("RANGE1: " + range1 + " - row = " + rangeonerow + ", and the column number = " + rangeonecolumn); // DEBUG
var range3 = "O594";
var rangethree = sheet.getRange(range3);
var rangethreerow = rangethree.getRow();
var rangethreecolumn = rangethree.getColumn();
Logger.log("RANGE3: " + range3 + " - row = " + rangethreerow + ", and the column number is " + rangethreecolumn); //DEBUG
var range5 = sheet.getRange(rangeonerow, rangeonecolumn, rangethreerow - rangeonerow + 1, rangethreecolumn - rangeonecolumn + 1)
var range5Rows = range5.getNumRows();
var range5Columns = range5.getNumColumns();
Logger.log("RANGE5: " + range5.getA1Notation() + " - Number of rows = " + range5Rows + ", and number of columns" + range5Columns);
}
或者,可以使用命名范围。
除以下内容外,适用相同的过程:
1-range1和range3是命名范围,分别分配给C590和O594。
2-我们使用GetNamedRange
代替声明字符串文字。
function so_5275968502() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheets()[0];
var rangeone = ss.getRangeByName("range1");
Logger.log("range one is " + ss.getRangeByName("range1").getA1Notation()); //DEBUG
var rangeonerow = rangeone.getRow();
var rangeonecolumn = rangeone.getColumn();
Logger.log("RANGE1: " + rangeone.getA1Notation() + " - row = " + rangeonerow + ", and the column number = " + rangeonecolumn); //DEBUG
var rangethree = ss.getRangeByName("range3");
Logger.log("range three is " + ss.getRangeByName("range3").getA1Notation()); //DEBUG
var rangethreerow = rangethree.getRow();
var rangethreecolumn = rangethree.getColumn();
Logger.log("RANGE3: " + rangethree.getA1Notation() + " - row = " + rangethreerow + ", and the column number is " + rangethreecolumn); //DEBUG
var range5 = sheet.getRange(rangeonerow, rangeonecolumn, rangethreerow - rangeonerow + 1, rangethreecolumn - rangeonecolumn + 1)
var range5Rows = range5.getNumRows();
var range5Columns = range5.getNumColumns();
Logger.log("RANGE5: " + range5.getA1Notation() + " - Number of rows = " + range5Rows + ", and number of columns" + range5Columns); //DEBUG
}