我需要使用一个脚本,将数据从一张纸发送到另一张纸,并在写入特定单元格后清除值。
我尝试过onEdit,它会清除值,但不会在第二张纸中插入它们。这是我到目前为止的代码:
function onEdit(e) {
if (e.range.getA1Notation() == "F6"){
//Copiar los datos originales
var ss1 = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss1.getSheetByName("Hoja 1");
var A = sheet1.getRange("B5").getValues();
var B = sheet1.getRange("F5").getValues();
var C = sheet1.getRange("A8:F22").getValues();
//Borrar valores de la hoja de origen después de copiar
var borrar = sheet1.getRange("B5").clearContent();
var borrar = sheet1.getRange("F6").clearContent();
var borrar = sheet1.getRange("A8:F22").clearContent();
//Spreadsheet en la que voy a copiar lo anterior
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1zF84h_gR0zHPqwobYyuOQlo50L2ktpZr2e4orMNtqE8/edit#gid=382646794');
var sheet = ss.getSheetByName("PEDIDOS SIN ORDENAR");
var lastRow = sheet.getLastRow() + 1;
//Insertar los valores
var destRange = sheet.getRange(lastRow, 1, A.length, A[0].length).setValues(A);
var destRange = sheet.getRange(lastRow, 2, B.length, B[0].length).setValues(B);
var destRange = sheet.getRange(lastRow, 3, C.length, C[0].length).setValues(C);
}}
如果我更改代码的名称并且不将其限制为F6单元格的内容,那么代码将完全运行。因此,我尝试使用一个按钮,该按钮在PC上可以正常工作,但我需要它也可以在移动设备上使用,并且按钮不适用于Android。
我最后一次尝试是:
function Enviar() {
//if (e.range.getA1Notation() == "F6"){
//Copiar los datos originales
var ss1 = SpreadsheetApp.getActiveSpreadsheet();
var sheet1 = ss1.getSheetByName("Hoja 1");
var A = sheet1.getRange("B5").getValues();
var B = sheet1.getRange("F5").getValues();
var C = sheet1.getRange("A8:F22").getValues();
//Borrar valores de la hoja de origen después de copiar
var borrar = sheet1.getRange("B5").clearContent();
var borrar = sheet1.getRange("F6").clearContent();
var borrar = sheet1.getRange("A8:F22").clearContent();
var D = sheet1.getRange("F6").getValues()
if (D == "SI"){
//Spreadsheet en la que voy a copiar lo anterior
var ss = SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1zF84h_gR0zHPqwobYyuOQlo50L2ktpZr2e4orMNtqE8/edit#gid=382646794');
var sheet = ss.getSheetByName("PEDIDOS SIN ORDENAR");
var lastRow = sheet.getLastRow() + 1;
//Insertar los valores
var destRange = sheet.getRange(lastRow, 1, A.length, A[0].length).setValues(A);
var destRange = sheet.getRange(lastRow, 2, B.length, B[0].length).setValues(B);
var destRange = sheet.getRange(lastRow, 3, C.length, C[0].length).setValues(C);
}}
这最后一次尝试似乎什么都没做。 我的尝试都没有显示错误,脚本运行了,但是没有给出预期的结果。
我不知道还能做什么。请帮助我。
答案 0 :(得分:0)
function Enviar(e) {
//Currently this function runs for any edit of any sheet you should consider limiting it to only the sheet and cell range that you desire
var ss1=SpreadsheetApp.getActiveSpreadsheet();
var sh1=e.source.getSheetByName("Hoja 1");
var A=sh1.getRange("B5").getValue();//single value
var B=sh1.getRange("F5").getValue();//single value
var C=sh1.getRange("A8:F22").getValues();//2D array
var borrar=sh1.getRange("B5").clearContent();
var borrar=sh1.getRange("F6").clearContent();
var borrar=sh1.getRange("A8:F22").clearContent();
var D=sh1.getRange("F6").getValue()
if (D=="SI"){
var ss=SpreadsheetApp.openByUrl('https://docs.google.com/spreadsheets/d/1zF84h_gR0zHPqwobYyuOQlo50L2ktpZr2e4orMNtqE8/edit#gid=382646794');
var sh=ss.getSheetByName("PEDIDOS SIN ORDENAR");
var lastRow=sh.getLastRow() + 1;
var destRange=sh.getRange(lastRow,1).setValue(A);//single value
var destRange=sh.getRange(lastRow,2).setValue(B);//single value
var destRange=sh.getRange(lastRow, 3,C.length,C[0].length).setValues(C);//2D array
}
}