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

Copy and Paste Cell on Form Submission

在 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);
}

为此有一个方便的快捷方式: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 A1 中的值粘贴到本次提交数据所在行的下一个可用列中。

function copyAndPaste(e) {
  e.range.getSheet().getRange(e.range.rowStart,e.range.columnEnd +1).setValue(e.source.getSheetByName('Sheet1').getRange('A1').getValue());
}
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);
}