提交表格时复制并粘贴单元格

时间:2019-05-25 00:18:08

标签: google-apps-script google-sheets keyboard-shortcuts copy-paste

在Google表格上提交表单时,我希望能够将一个特定的单元格复制并粘贴到新行中。我想在同一个单元格中执行此操作,但是作为价值。 (这是一个依赖于变化的变量的公式,我希望它一旦提交以用于历史数据就粘贴为值)。

编辑:含糊其辞。 Javascript不是我的强项,我是google脚本的新手。我从Nate Sargent的Quora答案中获取了一些代码,并对其进行了如下编辑以完成我想要的...

function pasteValue(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('INVOICES')
var lastRow = sheet.getDataRange().getValues();

lastRow.forEach(function (row,index) {
    if (row[1] == "") {  
        lastRow.length = index;
    }
});

var newRange = sheet.getRange(lastRow.length,13);
newRange.copyTo(newRange, {contentsOnly: true})
sheet.setActiveRange(newRange);
}

3 个答案:

答案 0 :(得分:0)

为此目的,有一个方便的快捷方式: CTRL + SHIFT + V 做到这一点。只需使用标准副本并将其与此组合粘贴即可,仅粘贴不带公式的值。使用脚本,您需要执行以下操作:

function moveValuesOnly() { var ss = SpreadsheetApp.getActiveSpreadsheet();
                            var source = ss.getRange('Sheet1!A1');
                            source.copyTo(ss.getRange('Sheet2!B1'), {contentsOnly: true}); }

Sheet1!A1的内容作为值移动到Sheet2!B1

答案 1 :(得分:0)

这会将工作表1的A1中的值粘贴到提交该数据的行的下一个可用列中。

function copyAndPaste(e) {
  e.range.getSheet().getRange(e.range.rowStart,e.range.columnEnd +1).setValue(e.source.getSheetByName('Sheet1').getRange('A1').getValue());
}

答案 2 :(得分:0)

function pasteValue(){
var sheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName('INVOICES')
var lastRow = sheet.getDataRange().getValues();

lastRow.forEach(function (row,index) {
    if (row[1] == "") {  
        lastRow.length = index;
    }
});

var newRange = sheet.getRange(lastRow.length,13);
newRange.copyTo(newRange, {contentsOnly: true})
sheet.setActiveRange(newRange);
}