簡體   English   中英

在編輯時將數據從一個電子表格復制到另一個電子表格

[英]Copy data from one spreadsheet to another on edit

我已經嘗試了一切,但我無法完成這項工作=/

我正在嘗試使用 setValues() 將數據從一個電子表格復制到另一個電子表格,因為鏈接對我不起作用。 我還需要保持觸發器處於編輯狀態。

因此,我創建了一個名為 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);
}

為什么我在編輯上使用時不起作用?

非常感謝! =)

我覺得我做的有點不同。 我將復選框放在第一列並從第 2 列捕獲值並將其發送到另一個電子表格到第 2 列的底部

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) 只是獲取一個電子表格 id,您可以將其替換為 id

此外,我將操作限制為僅一張紙,並且僅當我將復選框設置為 true 時。 我在代碼中將其重置為 false。

你需要修改一些東西才能讓它為你工作,因為當我做例子時,我會按照我的方式去做。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM