我正在使用Google表格跟踪我的投资组合,我有一个单元格,可以从表格的各个部分计算我的投资组合的当前市场总价值。
我试图看看是否有可能创建一个脚本,每天自动从该单元格中记录日期和市场价值(仅限值,而不是公式)。我知道可以设置触发器每周/每天运行代码,但是代码本身有问题。
我可以想到两种方法。我不确定如何对第二个实现进行编码,到目前为止我对第一个实现的编码如下。
1)(首先,使用Cell A1作为计数器。将初始值设置为,例如,3。)
function recordValue() {
//read the counter in Cell A1
var counter = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ThisSheet").getRange("A1")
//record current date in cell B&(contents of cell A1)
var dateCell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ThisSheet").getRange("B"&counter)
outputRange.setValues(Utilities.formatDate(new Date(), Session.getTimeZone(), 'MM-dd-yyyy'));
//read the current market value in 'Summary'!A1 and record it in cell C&(contents of cell A1)
var marketValue = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Summary").getRange("A1:A1");
var outputCell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ThisSheet").getRange("C"&counter);
outputCell.setValues(marketValue);
//add 1 to the counter in cell A1
counter.setValues(counter + 1);
};
2)在下面的单元格中记录当前日期,然后读取'SheetA'!A1中的当前市场价值并将其记录在日期右侧的单元格中。然后在下面直接创建一个新的空行(即将最近写入的数据按下一行)
我是Google表格的新手,并且没有太多的编程知识。以上哪种方法都可以工作(并且可以使用时间驱动的触发器)?我对第一个实现的当前代码有什么问题?
谢谢!
答案 0 :(得分:0)
我对您的代码进行了一些更改,因为您没有使用getValue()。
我并不完全明白你想要做什么,但下面的代码可行:
function recordValue() {
//read the counter in Cell A1
var counter = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ThisSheet").getRange("A1");
//record current date in cell B&(contents of cell A1)
var dateCell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ThisSheet").getRange("B"+counter.getValue());
dateCell.setValue(new Date());
//read the current market value in 'Summary'!A1 and record it in cell C&(contents of cell A1)
var marketValue = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Summary").getRange("A1");
var outputCell = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("ThisSheet").getRange("C"+counter.getValue());
outputCell.setValue(marketValue.getValue());
//add 1 to the counter in cell A1
counter.setValue(counter.getValue() + 1);
}