我正在尝试在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"和"跟踪器"。
ss
和sheet
分别是 "sheet1" 和 "sheet2" 的工作表对象。并且,分别从"跟踪器"工作表上的"A2"和"B2"中检索current_date
和current_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(
- 追加行(行内容(