我很高兴使用google工作表的公式来完成大量的工作。但是现在,我发现我需要一个按键操作的系统"和脚本编写是我刚刚开始涉足的问题。
我正在尝试创建一个脚本,该脚本将在名为“测试器页面”的工作表上读取单元格(D2)的内容。并将单元格D2复制到同一文档中的单独工作表上。复制后,我需要工作表清除范围B5:B16和D5:d16在测试页面上。'使用数据验证从下拉菜单中选择这两个范围中的数据。
最后的踢球者是需要按钮激活。
因此,在我最初的尝试中,我现在正尝试从单元格D2复制数据,然后将其附加到页面底部。它不起作用。对此步骤或其他步骤的任何帮助都将是巨大的。这就是我到目前为止所拥有的:
function addProduct() {
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('Tester Page');
var value = sheet.getRange(2,4)
sheet.appendRow(value);
}
修改 所以我启动并运行了脚本(包括使用可点击的按钮)。一切顺利,直到我们决定对页面的工作方式进行一些更改。我们决定采用整行数据(第22行),而不是将1个单元格的内容复制到第二页(称为' Transactions')。我现在添加了我的脚本,它将复制一个单元格20次...而不是20列的字符串。我真的希望整行,不仅仅是20列值,但无法弄清楚。
function mainThing() {
//get content
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tester Page');
var cell = sheet.getRange(22,1).getValues();
//copy content
var destination = ss.getSheetByName('Transactions');//whatever page
var destCell = destination.getRange(2, 1, 1, 20)
destCell.setValue(cell);
//Add clean row
var add = ss.getSheetByName('Transactions')
add.insertRowBefore(2)
再次感谢您的帮助。你们真棒。
答案 0 :(得分:0)
根据变化,它会是这样的......
function mainThing() {
//get content
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tester Page');
var lastCol = ss.getLastColumn();//get last column in the ss
var cell = sheet.getRange(2, 1, 1, lastCol).getValues(); //get contents of row
//copy content
var destination = ss.getSheetByName('Transactions');
var destRange = destination.getRange(2, 1, 1, lastCol);
destination.insertRowBefore(2);
destRange.setValues(cell);
//clear content
clearThis("B5:B16");
clearThis("D5:D16");
}
//content clearer
function clearThis(range){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Tester Page');
var theRange = sheet.getRange(range);
theRange.clearContent();
}
//straight from https://developers.google.com/apps-script/guides/menus
function onOpen() {
var ui = SpreadsheetApp.getUi();
// Or DocumentApp or FormApp.
ui.createMenu('Do Magic')
.addItem('Presto', 'mainThing')
.addToUi();
}
答案 1 :(得分:0)
我按照我想要的方式工作。它将一行单元格复制到一个新工作表,在新工作表的顶部插入一个空行(这样我的复制数据就不会被覆盖),并清除我需要清理的单元格区域中的数据。当用户点击屏幕上的按钮时,我也会运行它。总的来说,我很高兴它有效。
这里有它的所有荣耀:
function mainThing() {
//get content
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Store Page');
var cell = sheet.getRange("A22:Z22").getValues();
//copy content
var destination = ss.getSheetByName('Transactions');//whatever page
var destCell = destination.getRange("A3:Z3");
destCell.setValues(cell);
//Add clean row
var add = ss.getSheetByName('Transactions')
add.insertRowBefore(3)
//clear content
clearThis("C5:C16");
clearThis("E5:E16");
clearThis("C2");
}
//content clearer
function clearThis(range){
var ss = SpreadsheetApp.getActiveSpreadsheet();
var sheet = ss.getSheetByName('Store Page');
var theRange = sheet.getRange("C5:C16");
var theRange2 = sheet.getRange("E5:E16");
var theRangeName = sheet.getRange(2, 3);
theRange.clearContent();
theRange2.clearContent();
theRangeName.clearContent();
}