【发布时间】:2021-02-10 14:34:42
【问题描述】:
几天来一直在为此苦苦挣扎,无法让它按照我喜欢的方式工作。基本上我想要一个脚本,它在特定单元格中获取一个值并将其复制到另一张表中特定列的下一个可用行中(跟踪股票投资组合的每日变化)。我想将今天的日期复制到 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
};
对所有解决方案开放。如果有更简单的方法,请告诉我。
【问题讨论】:
-
gains.getRange('D2:D').getValues().filter(String).length + 1这将为您提供最后一行之后的行,其中包含 D 列的内容(假设 D 之间没有空单元格,就像屏幕截图中的情况一样)。 -
对不起,在我之前评论的公式中,您应该添加 2 而不是 1,因为您从第二行开始。
-
是的!这让我朝着正确的方向前进.. 谢谢!
标签: google-apps-script google-sheets stock