我一直在使用Google Apps脚本和电子表格来创建一个观看一组股票的电子表格。我已经为每个库存分配了自己的工作表,并设置了具有日期触发器的功能,以便每天刷新所有信息。我花了很多时间调试了很多,最后让它完美地用于前两张。我现在又增加了3个而且没有为他们做任何事情。
function XMLDATAONDAY() {
for (r=0;r<5;r++){
var ss=SpreadsheetApp.getActiveSpreadsheet()
var sheets= ["HSY","AAPL","CENX","MSFT","TSLA"]
var sheet=ss.getSheetByName(sheets[r])
var i=14
var dateSrc=sheet.getRange(2,5)
var stockPrice = sheet.getRange(5,4).getValue()
var displayCell= sheet.getRange(2,4)
var date = dateSrc.getValue()
SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1IOBQpdUr0fq_clie-0AOnCAN87qTy9Yn1h79akMJ7uc/edit#gid=0');
for (i=14;i<366;i++) {
var sheets= ["HSY","AAPL","CENX","MSFT","TSLA"]
var stockCell=sheet.getRange(i,2)
var dateCell=sheet.getRange(i,1)
if(stockCell.getValue()== ""){
sheet.getRange(14,1).copyFormatToRange(sheet, 1, 1, i, i)
sheet.getRange(14,2).copyFormatToRange(sheet, 2, 2, i, i)
dateCell.setValue(date);
stockCell.setValue(stockPrice);
i=400;
}
}
}
}
这可能只是我忽略的东西,但我似乎无法找到任何东西。
答案 0 :(得分:0)
这一行:
>>> l1 = [1,2,3]; l2 = [4,5,6]
>>> sum(a * b + 1 for a, b in zip(l1, l2))
35
应该改为:
i=400;
我猜你将break;
设置为400以阻止下一个循环运行?
i
有一个重复的变量分配。它是一个数组文字。只定义一次,并将其放在sheets
循环之外。将for
的变量赋值也放在循环之外。如果您没有为ss
分配语句,则代码仍然运行时没有任何明显的差异,但如果没有r
语句,则变量在全局范围内定义。
通过URL打开电子表格的声明没有做任何事情。它没有分配给变量,因此我不确定该行的用途。
var