工作表名称存储在数组中,仅限Google Apps脚本访问前两个

时间:2016-01-17 22:01:32

标签: arrays google-apps-script google-sheets

我一直在使用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;
            }
        }
    }
}

这可能只是我忽略的东西,但我似乎无法找到任何东西。

1 个答案:

答案 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