Google Sheets:将A2的NOW()值复制到B列首个空白单元格
解决Google Sheets写入B列首个空白单元格的问题
你的问题出在getLastRow()是判断整个工作表最后一行是否有数据,而非单独B列。当C列有内容时,getLastRow()会返回C列所在的行号,导致代码跳过B列的空白单元格直接写入下一行。
修改后的代码专门针对B列查找首个空白单元格:
function copy() { var ss = SpreadsheetApp.getActiveSpreadsheet(); var svA = ss.getRange('A2').getValue(); var tsh = ss.getSheetByName('SheetName'); // 获取B列已使用区域的所有值 var bColumnValues = tsh.getRange(1, 2, tsh.getLastRow(), 1).getValues(); var targetRow = 1; // 遍历B列,定位第一个空白单元格 for (var i = 0; i < bColumnValues.length; i++) { if (bColumnValues[i][0] === "") { targetRow = i + 1; break; } } // 若B列已用区域无空白,写入下一行 if (targetRow > bColumnValues.length) { targetRow = bColumnValues.length + 1; } tsh.getRange(targetRow, 2).setValue(svA); }
代码说明:
- 仅获取B列已使用行的数据,避免遍历整列浪费资源
- 循环遍历B列值,精准定位第一个空白单元格的行号
- 若B列已用行全部有数据,则自动写入下一行
内容的提问来源于stack exchange,提问作者Ralu Carmichael
相关产品推荐
相关产品推荐

