我有一个Google电子表格,旨在为衡量员工人口统计数据的企业计算平衡记分卡。电子表格包含多个数据输入单元格和一些“隐藏”列,其中包含用于计算输入数据并生成分数的特定公式。
我需要一个脚本,它将位于电子表格的任何一行(当前光标位置): a)从主菜单调用脚本(插入行) b)在当前光标位置下方插入用户定义的行数(弹出UI框,请求插入行数) c)复制上面一行中的数据,包括隐藏列中包含的所有数据/公式 d)重新隐藏受保护的列,然后再交给用户。
隐藏列包含我不希望用户看到的IP,因此隐藏/受保护的方面。
有人可以帮忙吗?
我的剧本到目前为止......
function onOpen() {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var menuEntries = [{name: "Insert Rows", functionName: "doGet"}];
ss.addMenu("User Functions", menuEntries);
}
function doGet(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var app =UiApp.createApplication().setTitle('Insert Rows').setHeight(75).setWidth(225);
// Create a grid with 1 text box and corresponding label.
// Test entered into the text box is passed in to numRows.
// The setName extension will make the widget available by the given name to the server handlers later.
var grid = app.createGrid(1, 2);
grid.setWidget(0, 0, app.createLabel('Number of Rows to Insert:'));
grid.setWidget(0, 1, app.createTextBox().setName('numRows').setWidth(50));
// Create a Vertical Panel and add the Grid to the Panel.
var panel = app.createVerticalPanel();
panel.add(grid);
// Create a button and Click Handler.
// Pass in the Grid Object as a callback element and the handler as a click handler.
// Identify the function insertRows as the server click handler.
var button = app.createButton('Submit');
var handler = app.createServerHandler('insertRows');
handler.addCallbackElement(grid);
button.addClickHandler(handler);
// Add the button to the Panel, add Panel to the App, launch the App
panel.add(button);
app.add(panel);
ss.show(app);
}
function insertRows(e) {
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getActiveSheet();
var cursPos = sheet.getActiveCell().getRow();
var valueRows = e.parameter.numRows;
sheet.insertRowsAfter(cursPos, valueRows);
var app = UiApp.getActiveApplication();
app.close();
return app;
}
我现在需要将当前活动单元格上方行的内容(新创建的行的顶部lh单元格)复制到新创建的行中。
答案 0 :(得分:2)
以下是可用于满足您需求的应用程序脚本“成分”:
A)在电子表格UI中创建一个新菜单。 http://goo.gl/qCPRC
B1)SpreadSheet getActiveCell http://goo.gl/1wiBp
B2)从电子表格http://goo.gl/nL4y4
显示用户界面C)将范围的内容复制到给定位置。 http://goo.gl/WRfcc
D)无需“取消隐藏”数据仍然可以读取/复制。您确实意识到隐藏完全没有安全性,因为用户可以从数据菜单中“取消隐藏”。
祝你好运!