使用不同长度的多个导入范围
Use multiple importrange with different length
我是编码新手,但我正在尝试做一些对我来说非常困难的事情...
我有大约 50 个电子表格,我想从每个电子表格中导入一些数据。我成功地使用 while 自动导入数据,问题是,每个电子表格都有自己的长度,都从单元格 A20 开始,一直到列 T,但最后一个数字不同。我使用了固定数字 (250),但它会在数据之间创建空白行。
是否可以个性化范围选择,这样我就可以避免数据之间出现空白 space?或者有一些代码可以删除数据之间的空行?
到目前为止我的代码...
function funil_usando_FOR () {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A3').activate();
i = 3
while (true) {
var range = spreadsheet.getRange("Z" + i);
var value = range.getValue();
if(value == "") {
break;
}
spreadsheet.getCurrentCell().setFormula('=importrange("'+value+'", "NOVO FUNIL!A20:T250")');
spreadsheet.getCurrentCell().offset(251, 0).activate();
i++;
}
}
答案:
有多种方法可以让您获取最后一行数据,其中数据存在于 Google Sheet.
方法:
- 方法一:
getDataRange()
可能最简单的方法是使用Sheet
class的getDataRange()
方法。此 returns 范围等于数据存在的维度:
var range = spreadsheet.getDataRange();
- 方法二:
getNumRows()
在上一个方法的基础上,如果不想获取范围,只想获取行数,可以调用返回的Range
对象的getNumRows()
方法:
var range = spreadsheet.getDataRange();
var lastRow = range.getNumRows();
您还可以使用 getLastRow()
方法获取此范围最后一行的整数值 - 此方法 returns 范围中的最后一行 - 但请注意 getNumRows()
,而不是返回像 getDataRange()
这样的范围,它 returns 是一个整数,因此您仍然必须在您使用的 getRange()
方法中使用它:
var range = spreadsheet.getDataRange();
var lastRow = range.getLastRows();
此方法与上一个基本相同 - 尽管这是 Sheet
class 的方法而不是 Range
class 的方法。它的用例与returns中最后一行的整数值sheet中的方法相同。如果您只想要最后一行的值,这可能是最好的使用方式,因为要定义的内容较少,而且您不必从返回的范围中提取它:
var lastRow = spreadsheet.getLastRow();
参考文献:
我是编码新手,但我正在尝试做一些对我来说非常困难的事情...
我有大约 50 个电子表格,我想从每个电子表格中导入一些数据。我成功地使用 while 自动导入数据,问题是,每个电子表格都有自己的长度,都从单元格 A20 开始,一直到列 T,但最后一个数字不同。我使用了固定数字 (250),但它会在数据之间创建空白行。
是否可以个性化范围选择,这样我就可以避免数据之间出现空白 space?或者有一些代码可以删除数据之间的空行?
到目前为止我的代码...
function funil_usando_FOR () {
var spreadsheet = SpreadsheetApp.getActive();
spreadsheet.getRange('A3').activate();
i = 3
while (true) {
var range = spreadsheet.getRange("Z" + i);
var value = range.getValue();
if(value == "") {
break;
}
spreadsheet.getCurrentCell().setFormula('=importrange("'+value+'", "NOVO FUNIL!A20:T250")');
spreadsheet.getCurrentCell().offset(251, 0).activate();
i++;
}
}
答案:
有多种方法可以让您获取最后一行数据,其中数据存在于 Google Sheet.
方法:
- 方法一:
getDataRange()
可能最简单的方法是使用Sheet
class的getDataRange()
方法。此 returns 范围等于数据存在的维度:
var range = spreadsheet.getDataRange();
- 方法二:
getNumRows()
在上一个方法的基础上,如果不想获取范围,只想获取行数,可以调用返回的Range
对象的getNumRows()
方法:
var range = spreadsheet.getDataRange();
var lastRow = range.getNumRows();
您还可以使用 getLastRow()
方法获取此范围最后一行的整数值 - 此方法 returns 范围中的最后一行 - 但请注意 getNumRows()
,而不是返回像 getDataRange()
这样的范围,它 returns 是一个整数,因此您仍然必须在您使用的 getRange()
方法中使用它:
var range = spreadsheet.getDataRange();
var lastRow = range.getLastRows();
此方法与上一个基本相同 - 尽管这是 Sheet
class 的方法而不是 Range
class 的方法。它的用例与returns中最后一行的整数值sheet中的方法相同。如果您只想要最后一行的值,这可能是最好的使用方式,因为要定义的内容较少,而且您不必从返回的范围中提取它:
var lastRow = spreadsheet.getLastRow();