在Google表格中创建每日投资组合跟踪器,使用importxml



我正在尝试在Google表格中跟踪某些股票的每日股票价值和日期。目前,数据捕获代码运行良好,但每次发生更改时,它都会用新值替换所有值。 在 A2 中,我有一个基于 IMPORTXML 的单元格,它从晨星获取日期,而在 B2 上,基于 SUBSTITUTE(SUBSTITUTE(importxml(CONCATENATE...这取了 FT 的每日价值。

我的脚本代码现在显示下一个:

function saveData() {
var ss = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet1");
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("sheet2")
var current_date = sheet.getRange('Tracker!A2').getValues();
var current_value = sheet.getRange('Tracker!B2').getValues();
sheet.appendrow([current_date, current_value]);

跟踪器是页面的名称。运行代码告诉我无法从空中获取范围。请问有什么问题?

这个答案怎么样?

修改点:

  • 在您的脚本中,使用了 3 个工作表名称,即"工作表 1"、"工作表 2"和"跟踪器"。sssheet分别是 "sheet1" 和 "sheet2" 的工作表对象。并且,分别从"跟踪器"工作表上的"A2"和"B2"中检索current_datecurrent_value
    • 在这种情况下,我认为Running code tells me that I cannot getRange from null.错误的原因是"sheet2"的工作表名称的工作表可能不包含在您的电子表格中。
    • 但是,在您的脚本中,使用了sheet.appendrow([current_date, current_value]);。所以你想把值放到"sheet2"或其他表的工作表上吗?关于这一点,我无法理解你的问题。
  • 当您想使用appendrow时,请修改为appendRow
  • 在您的脚本中,getValues()检索的二维数组用作[current_date, current_value]的值。在这种情况下,即使appendrow被修改为appendRow,像[Ljava.lang.Object;@###这样的值也会被放入单元格中。
  • 如果要从工作表"Tracker"上的" A2"和" B2"单元格中检索值,并希望将检索到的值附加到工作表中,则可以使用Tracker!A2:B2作为范围。

当上述几点反映到您的脚本中时,它将变为如下。

修改后的脚本:

请将目标工作表名称设置为sheetName

function saveData() {
var sheetName = "###";  // Please set the destination sheet name.
var ss = SpreadsheetApp.getActiveSpreadsheet();
var value = ss.getRange('Tracker!A2:B2').getValues();
ss.getSheetByName(sheetName).appendRow(value[0]);
}

引用:

  • getRange(a1Notation(
  • 追加行(行内容(

最新更新