如何解决Google Apps 脚本/表格 - 将单元格复制到特定列中的下一个空单元格
几天来一直在为此苦苦挣扎,无法按照我喜欢的方式工作..基本上我想要一个脚本,该脚本在特定单元格中获取一个值并将其复制到另一个工作表中特定列的下一个可用行中(跟踪股票投资组合的每日变化)。我想将今天的日期复制到 D 列,将另一张工作表中的值复制到 E 列。
我尝试过 getLastRow() 但它只是在列的最底部添加值。我曾尝试使用其他问题的循环解决方案,但最终总是复制到错误的地方,或者我只是用我有限的编码知识无法理解它。
这是我目前一团糟的东西,我只是卡住了:
function dailyCaptureGains() {
// Get the daily value
var stockdata = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Dividend Portfolio');
var value = stockdata.getRange(27,2).getValue();
Logger.log("Value = " + value)
debugger
// Add the date and stock data to the other sheet
var gains = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Gains');
var formattedDate = Utilities.formatDate(new Date(),"GMT","MM/dd/yy");
Logger.log(formattedDate);
debugger
// Find next empty cells to add the data and value
var dateRange = gains.getRange('D2:D');
var dateLastRow = dateRange.getLastRow(); // Get last row
Logger.log("last row = " + dateLastRow);
var date = dateLastRow + 1;
debugger
};
对任何和所有解决方案开放。如果有更简单的方法可以做到这一点,请告诉我。
解决方法
有两种选择:
-
getLastRow(表法)
请注意,有两种
getLastRow
方法,一种在 Sheet 类中,一种在 Range 类中。在您的情况下,您使用的是Range
类中的一个,范围为D2:D
,也就是说,您没有指定结束,因此您不会得到所需的结果。var dateLastRow = stockdata.getLastRow()
-
Javascript 技巧
如果您知道范围的起点但不知道终点,则可以采用大范围并过滤掉其空值。
var dateRange = gains.getRange('D2:D').getValues(); var dateLastRow = dateRange.filter(String).length; // Get last row
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。