簡體   English   中英

Google Sheets/Apps Script Copy 公式到新行

[英]Google Sheets/Apps Script Copy Formula to new row

對此仍然相當陌生。 我已經能夠使用復選框在單獨的選項卡上觸發新行的創建。 在這個新選項卡上,有一列包含公式。 創建新行時(在第一行之上),我想要新行中的公式。 這是我到目前為止所擁有的:

  if(sheet.getSheetName() == CLIENTS) {
    var checkCell = ss.getActiveCell();
    var checked = checkCell.getValue();
    var clientNameCell = checkCell.offset(0,-8).getValue();
    var clientType = checkCell.offset(0,-7).getValue();
    var sessionChargeCell = checkCell.offset(0, -6).getValue();
    var groupChargeCell = checkCell.offset(0,-5).getValue();
    var softwareFee = checkCell.offset(0,-4).getValue();
    var billFee = checkCell.offset (0,-3).getValue();
    var targetSheet = ss.getSheetByName("Client Billing Projections");
    var lCol = targetSheet.getLastColumn();
    if (checkCell.getColumn() == NEWCLIENTCHECK && checked == true) {
      var target = targetSheet.getRange(2, 1, 1, lCol);
      var formulas = target.getFormulas();
      targetSheet.insertRowBefore(2);
      var newRow = targetSheet.getRange(2,1,2,lCol);
      newRow.setFormulas(formulas);
    }
  }

我想我被卡住的地方是在targetSheet.insertRowBefore(2); . 我認為這與我對 getFormulas 和 setFormulas 的使用有關,但我真的無法理解它。 這里沒有語法錯誤。 如您所見,我已經從我的第一張表 (CLIENTS) 中收集了值; 我打算將它復制到另一個選項卡上,但我也必須復制公式。 任何幫助,將不勝感激。

這是工作表的一個例子那里已經有很多工作代碼了。 您將在這里看到的大部分內容可能在第 222 - 238 行之間。到目前為止,其他一切都有效。

  • 運行腳本時,會在Client Billing Projections表中的第 2 行中插入一個新行。
  • 您想將公式放在插入行的“N”列中。

如果我的理解是正確的,這個修改怎么樣?

改裝要點:

  • 在您的腳本中,公式由var formulas = target.getFormulas()var target = targetSheet.getRange(2, 1, 1, lCol); . 這是包括一行的二維數組。 檢索到的公式使用newRow.setFormulas(formulas)var newRow = targetSheet.getRange(2,1,2,lCol) 在這種情況下, formulas具有包含 2 行的二維數組。
    • 我認為您的問題的原因可能是這個。

修改后的腳本:

當您的腳本被修改時,請進行如下修改。

從:
 var newRow = targetSheet.getRange(2,1,2,lCol);
到:
 var newRow = targetSheet.getRange(2,1,1,lCol);

參考:

暫無
暫無

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

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