【问题标题】:How to use loop function in google sheets to past data from one sheet to other?如何在谷歌表格中使用循环功能将数据从一张表格传递到另一张表格?
【发布时间】:2022-10-18 07:55:28
【问题描述】:

我的工作簿中有 2 张表,一张简单的发票和一张表 2 数据表我每天更新 sheet2 并记录各种客户的交易在 sheet1 我想根据他们在表 2 中记录的所有交易为每个客户制作每月发票我需要一个脚本,可以在 sheet-2 的 B 列中查找 sheet-1 的“单元格 5”的值,并将所有相应的交易复制到 sheet-1 列 B~D 我希望这有意义提前谢谢 这是表格链接https://docs.google.com/spreadsheets/d/1jDzmyKsLD1zzfmJ4yNrNEuzb-lCmQSBIq_ba55r-T3c/edit?usp=sharing

【问题讨论】:

  • 请提供足够的代码,以便其他人可以更好地理解或重现该问题。

标签: loops google-apps-script google-sheets copy


【解决方案1】:

检查此代码
我希望这可以帮助你
虽然我不确定你的问题但不容易理解
检查您的工作表中的代码和结果

你也应该在你的问题中添加预期的结果。

function updateInvoice() {
  const blankArr = [];



  const SS = SpreadsheetApp.getActiveSpreadsheet();
  const invoice = SS.getSheetByName("Invoice-2");
  const data = SS.getSheetByName("Sheet2").getRange(3, 2, SS.getSheetByName("Sheet2").getLastRow() - 3, 6).getValues();

  // const data = [
  //   ['client', 'Date', 'Service', 'Rate', 'Quantity', 'Unit cost'],
  //   ['abc', '2/23/2022', 'Service 1', '23', '2', '10.00'],
  // ]

  const clientName = invoice.getRange('B5').getValue();
  const startDate = new Date(invoice.getRange('C5').getValue());
  const endDate = new Date(invoice.getRange('D5').getValue());

  for (let i = 0; i < data.length; i++) {
    const r = data[i];
    if (r[0] === clientName && r[1] >= startDate && r[1] <= endDate) {
      blankArr.push(r);
    }
  }



  // if you want to use as function remve below line if you want to update onEdit then keep
  invoice.getRange(9, 2, blankArr.length, blankArr[0].length).setValues(blankArr);




  return blankArr;

}

【讨论】:

  • 是的,它解决了我的问题。上帝保佑你“Dibash Sapkota”五颗星*****
猜你喜欢
  • 2020-04-12
  • 2021-10-03
  • 2017-01-21
  • 1970-01-01
  • 2022-01-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-08-22
相关资源
最近更新 更多