无法从独立脚本(Google Apps脚本)中激活表格



为了保护代码(这样人们看不到(,我将电子表格从独立脚本管理。

除了激活表或单元格之外,所有功能都起作用(这些功能与绑定脚本一起工作,计算正确,单元格被激活(。

我试图从独立脚本中激活表格,然后将其添加为库,并从文件的界脚本调用。无效。

我需要激活电子表格打开的纸张和单元格。

这是我的代码(绑定到电子表格(:

function onOpen() {      
    RandomNetwork.goToLastBlock()
}

这是库中的代码(独立脚本(:

//goes to the last block on the sheet
function goToLastBlock() {  
    var file = SpreadsheetApp.openById("1kTOcxVv7RgIvp-BVvbZyBbeE92HiAKm8hbFURh19Enc")
    var sheets = file.getSheets()
    for (var i in sheets) {
        var sheetID = sheets[i].getSheetId()
        if (sheetID === 908402362) {
            var lr = sheets[i].getLastRow()
            var cell = sheets[i].getRange(lr, 1)
            sheets[i].activate()
            sheets[i].setCurrentCell(cell)
            return
        }
    }
  }

当我从绑定脚本运行时,它找到了该电子表格和表格,请正确计算最后一行。但是当我从脚本跑来时,它没有做任何事情。

如何从独立脚本中激活表格和单元格?我会感谢任何建议。

每次您更改库中的代码时,都需要发布新版本,并且还必须在库中的绑定脚本中更改版本号。

作为测试,我将以下代码放在独立的脚本中:

//goes to the last block on the sheet
function goToLastBlock() {  
    var file = SpreadsheetApp.getActive();
    var sheets = file.getSheets()
    var theSheet = sheets[0];
    var lr = theSheet.getLastRow()
    var cell = theSheet.getRange(lr, 1)
    theSheet.activate()
    theSheet.setCurrentCell(cell)
    return theSheet.getSheetName();
}

然后,从绑定到表格的脚本,我将库(单独(添加到界脚本中,然后从界脚本运行代码:

function onOpen() {      
    RandomNetwork.goToLastBlock()
}

代码激活了最后一行的单元列。

我以Web应用程序发布了库,以执行为"用户访问Web应用程序"one_answers"组织中的任何人"

它对我提供了提供的示例代码并按照所述进行设置。

您无法从独立脚本中激活表格和单元格。

只有包装容器的脚本才能制作床单&范围有效。您正在使用的特定方法在容器的描述中没有明确提及,但这是现实。

库具有更多细微的范围,您可以在此处阅读更多有关此信息的信息。如表中所示(链接中(,库可以访问容器。从本质上讲,由于包含容器的脚本使用库,因此将独立脚本复制(如果您将愿意(,则在包含容器的脚本上,因此可以访问这些特权方法。

相关内容

  • 没有找到相关文章

最新更新