我一直在开发用于 Google 表格的脚本,现在无法创建绑定到容器/电子表格的脚本。无论是新创建的电子表格还是工作表中已有脚本的电子表格,保存图标都只会让我将脚本保存到我的驱动器中,这也妨碍了我访问/使用 SpreadsheetApp 服务的能力,而这对于我为工作编写的所有脚本。
我成功创建的最后一个脚本是将数据存档到另一张纸上,如下所示:
function onOpen() {
var ui = SpreadsheetApp.getUi();
var menu = ui.createMenu('Actions');
menu.addItem('Clone - Archive Selected Rows', 'archiveSelectedRowsClone')
.addItem('Veg - Archive Selected Rows', 'archiveSelectedRowsVeg')
.addItem('Flower - Archive Selected Rows', 'archiveSelectedRowsFlower')
.addItem('Mom - Archive Selected Rows', 'archiveSelectedRowsMom')
.addToUi();
}
function archiveSelectedRowsClone() {
archiveSelectedRows('Clone', 'Clone Archive');
}
function archiveSelectedRowsVeg() {
archiveSelectedRows('Veg','Veg Archive');
}
function archiveSelectedRowsFlower() {
archiveSelectedRows('Flower', 'Flower Archive');
}
function archiveSelectedRowsMom() {
archiveSelectedRows('Mom Room/Z10', 'Mom Archive')
}
function archiveSelectedRows(sourceSheetName, destinationSheetName) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sourceSheet = ss.getSheetByName(sourceSheetName);
var destinationSheet = ss.getSheetByName(destinationSheetName); 1
// Get the selected range
var selectedRange = sourceSheet.getActiveRange();
// Get the last row of the destination sheet
var lastRow = destinationSheet.getLastRow();
// Copy the formatting to the destination sheet
selectedRange.copyTo(destinationSheet.getRange(lastRow + 1, 1), {contentsOnly: false});
// Copy the values to the destination sheet, using display values and batch setting
var targetRange = destinationSheet.getRange(lastRow + 1, 1, selectedRange.getNumRows(), selectedRange.getNumColumns());
var values = selectedRange.getDisplayValues();
targetRange.setValues(values);
要创建绑定脚本,您首先必须打开文件、文档、表单、演示文稿或电子表格。
在 Google 文档、Google 表格和 Google 幻灯片上,单击 扩展,然后单击 Apps 脚本。如果该文件还没有绑定项目,这将创建一个新的绑定项目并将其打开。如果文件已经有绑定的项目,这将打开绑定的项目。
要在同一文件中创建另一个绑定项目,请复制现有绑定项目之一。
您也可以使用 Google Apps Script API 或 CLASP 来实现上述目的。