在编辑时将数据从一个电子表格复制到另一个电子表格
Copy data from one spreadsheet to another on edit
我已经尝试了所有方法,但我无法完成这项工作=/
我正在尝试使用 setValues() 将数据从一个电子表格复制到另一个电子表格,因为 link 对我不起作用。我还需要保持触发器处于编辑状态。
因此,我创建了一个名为 AddConvocacao 的函数,并且总是在对脚本进行任何更改时 运行。
function addConvocacao(e){
var linha = e.range.getRow(); //get the number of the line, where have edit
var nome = e.source.getActiveSheet().getRange(linha,2).getValue(); //get the value of the field
var targetSheet = SpreadsheetApp.openById('1iQbZ7iB9ddc-HwLK9vG0eVEeWWqXKJZ0ry7U_Hm4SkQ') //open the other spreedsheet
var targetName = targetSheet.getSheetByName('Pac'); //open the tab
var lastRow = targetName.getLastRow(); //count the last row in this tab
lastRow = lastRow+1; //add 1
targetName.getRange(lastRow, 2).setValue(nome); // set the value
// targetName.getRange(lastRow, 3).setValue(valorCol7);
// targetName.getRange(lastRow, 5).setValue(dose);
// targetName.getRange(lastRow, 6).setValue(diagnostico);
// targetName.getRange(lastRow, 7).setValue(medico);
}
为什么我在编辑时使用无效?
非常感谢! =)
我觉得我做的有点不同。我将复选框放在第一列并从第二列捕获值并将其发送到另一个 spreadsheet 到第二列的底部
function onMyEdit(e) {
//e.source.toast('entry');
const sh = e.range.getSheet();
//Logger.log(JSON.stringify(e));
if (sh.getName() == 'Sheet1' && e.range.columnStart==1 && e.value=="TRUE") {
//e.source.toast('cond');
const v = sh.getRange(e.range.rowStart, 2).getValue();
var tss = SpreadsheetApp.openById(getGlobal('targetid'));
var tsh = tss.getSheetByName('Sheet1');
tsh.getRange(tsh.getLastRow() + 1, 2).setValue(v);
e.range.setValue("FALSE");
}
}
您必须对我们使用可安装的触发器 openById();
getGlobal(targetid) 只是得到一个传播sheet id 你可以用 id
替换它
此外,我将操作限制为只有一个 sheet,并且仅当我将复选框设置为 true 时。我在代码中将其重置为 false。
你需要修改一些东西才能让它为你工作,因为当我做例子时,我是按照我的方式做的。
我已经尝试了所有方法,但我无法完成这项工作=/
我正在尝试使用 setValues() 将数据从一个电子表格复制到另一个电子表格,因为 link 对我不起作用。我还需要保持触发器处于编辑状态。
因此,我创建了一个名为 AddConvocacao 的函数,并且总是在对脚本进行任何更改时 运行。
function addConvocacao(e){
var linha = e.range.getRow(); //get the number of the line, where have edit
var nome = e.source.getActiveSheet().getRange(linha,2).getValue(); //get the value of the field
var targetSheet = SpreadsheetApp.openById('1iQbZ7iB9ddc-HwLK9vG0eVEeWWqXKJZ0ry7U_Hm4SkQ') //open the other spreedsheet
var targetName = targetSheet.getSheetByName('Pac'); //open the tab
var lastRow = targetName.getLastRow(); //count the last row in this tab
lastRow = lastRow+1; //add 1
targetName.getRange(lastRow, 2).setValue(nome); // set the value
// targetName.getRange(lastRow, 3).setValue(valorCol7);
// targetName.getRange(lastRow, 5).setValue(dose);
// targetName.getRange(lastRow, 6).setValue(diagnostico);
// targetName.getRange(lastRow, 7).setValue(medico);
}
为什么我在编辑时使用无效?
非常感谢! =)
我觉得我做的有点不同。我将复选框放在第一列并从第二列捕获值并将其发送到另一个 spreadsheet 到第二列的底部
function onMyEdit(e) {
//e.source.toast('entry');
const sh = e.range.getSheet();
//Logger.log(JSON.stringify(e));
if (sh.getName() == 'Sheet1' && e.range.columnStart==1 && e.value=="TRUE") {
//e.source.toast('cond');
const v = sh.getRange(e.range.rowStart, 2).getValue();
var tss = SpreadsheetApp.openById(getGlobal('targetid'));
var tsh = tss.getSheetByName('Sheet1');
tsh.getRange(tsh.getLastRow() + 1, 2).setValue(v);
e.range.setValue("FALSE");
}
}
您必须对我们使用可安装的触发器 openById();
getGlobal(targetid) 只是得到一个传播sheet id 你可以用 id
替换它此外,我将操作限制为只有一个 sheet,并且仅当我将复选框设置为 true 时。我在代码中将其重置为 false。
你需要修改一些东西才能让它为你工作,因为当我做例子时,我是按照我的方式做的。