gpt4 book ai didi

javascript - Google Sheets 脚本 - 获取第一个空白单元格

转载 作者:行者123 更新时间:2023-11-28 07:30:35 26 4
gpt4 key购买 nike

我想找到范围中的第一个空白单元格。此代码有效,但它似乎链接到 B 列。

function selectFirstEmptyRow() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.setActiveSelection(sheet.getRange("D"+getFirstEmptyRow()))
}



function getFirstEmptyRow() {
var sheet = SpreadsheetApp.getActiveSheet();
var range = sheet.getDataRange();
var values = range.getValues();
var row = 26;
for (var row=26; row<values.length; row++) {
if (!values[row].join("")) break;
}
return (row+1);
}

当我运行它时,它选择 D 中的单元格,但根据 B 查找空白。

假设我们正在第 10-20 行工作。 B 列中有 10-12 的内容。我运行这个(据我所知应该在D上运行),它会选择D13(因为B10:B12中有东西。即使D中没有任何东西,它应该选择D10。

更新:::

所以我做了一些你建议的更改。

function selectFirstEmptyRow() {
var sheet = SpreadsheetApp.getActiveSpreadsheet();
sheet.setActiveSelection(sheet.getRange("B"+getFirstEmptyRow()))
}


function getFirstEmptyRow() {
var sheet = SpreadsheetApp.getActiveSheet();

var lastRow = sheet.getLastRow();
//getRange(row, column, numRows, numColumns)
var range = sheet.getRange(28, 2, lastRow - 28, 1);

var values = range.getValues();
var row = 28;

for (var i=0; i<values.length; i++) {
if (!values[i].join(" ")) break;
}
return (row+1);
}

它总是选择第 29 行(我假设是因为它从第 28 行开始并且我有 return(row+1)?

最佳答案

这一行:

var row = 26;

硬编码起始数字为 26。循环计数从 26 开始:

for (var row=26; row<values.length; row++) {

如果您希望循环从起始行 10 到最后一行循环次数,则将该行更改为:

for (var i=0; i<values.length; i++) {

您的代码实际上定义了变量row两次。一次位于 for 循环上方,一次位于 for 循环内部。 row 变量根本不应该在循环中使用。 for 循环需要它自己的计数器。

在这行代码中:

for (var row=26; row<values.length; row++) {

JavaScript Array join() 方法从数组返回一个字符串。

这行代码中的 getDataRange() 方法:

var range = sheet.getDataRange();

返回工作表中所有行和列的二维数组。该范围从工作表中数据的左上角开始。如果您想排除 C 列之前的列(包括 C 列),请使用不同的内容来获取不同的范围。

所以,我会改变这一行:

var range = sheet.getDataRange();

也许将代码更改为:

var lastRow = sheet.getLastRow();
//getRange(row, column, numRows, numColumns)
var range = sheet.getRange(10, 4, lastRow - 10, 1);

上面的代码会获取一个二维数组的数据,从第10行第4列开始,获取比总行数少10行的数据,并且只获取D列(第4列)中的一列数据

关于javascript - Google Sheets 脚本 - 获取第一个空白单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29167341/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com