【问题标题】:Setting the value of a spreadsheet cell using a script使用脚本设置电子表格单元格的值
【发布时间】:2013-02-25 06:31:36
【问题描述】:

我创建了一个每天在定时触发器上运行一次的脚本,其目的是复制模板电子表格并使用当前日期重命名它。此外,我想将新创建的电子表格中特定单元格的值设置为当前日期。

var date = Utilities.formatDate(new Date(), 'EST', 'MMddyy');
var newLiveFeedName = "Live Feed ("+date+")"; 
var newLiveFeed = currentLiveFeedTemplate.makeCopy(newLiveFeedName);
newLiveFeed.SpreadsheetApp.getSheetByName("Summary").getRange('G2').setValue(date);

我收到一个错误,表明 getSheetByName() 函数未定义。我错过了什么?

【问题讨论】:

    标签: google-apps-script google-sheets


    【解决方案1】:

    newLiveFeed 是一个电子表格对象,所以可以这样尝试:

    (假设currentLiveFeedTemplateActiveSpreadsheet()

    var date = Utilities.formatDate(new Date(), 'EST', 'MMddyy');
    var newLiveFeedName = "Live Feed ("+date+")"; 
    var newLiveFeed = currentLiveFeedTemplate.copy(newLiveFeedName);
    newLiveFeed.getSheetByName("Summary").getRange('G2').setValue(date);
    

    【讨论】:

    • 此脚本的触发独立于任何电子表格,因此不会打开活动的电子表格。可以通过这种方式编辑单元格,还是我需要让脚本在编辑单元格之前打开电子表格。
    • 如果脚本独立于电子表格执行,您必须使用 var currentLiveFeedTemplate=SpreadsheetApp.openById(id) 定义源电子表格,id 是源电子表格的 ID。
    • 确实:SpreadsheetApp.openById(newLiveFeed.getId()).getSheetByName("Summary").getRange('G2').setValue(date);
    • 乔纳森,你的台词完全符合我的剧本的预期。谢尔盖,谢谢你带领我走到这一步。作为 Google App Scripts 的新手,我没有意识到我必须让脚本虚拟地“打开”电子表格才能编辑单元格。到目前为止,我的脚本的其余部分只是复制和移动了电子表格文件。
    猜你喜欢
    • 2011-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-12
    • 1970-01-01
    • 1970-01-01
    • 2012-06-01
    相关资源
    最近更新 更多