繁体   English   中英

复制到 Google 表格脚本,在下一列中添加日期和源数据

[英]copyto Google Sheets Script adding date and source data in the next column

我对 Javascript 和 Apps 脚本还很陌生。 我想创建一个 function 来根据活动工作表特定范围内的日期更新另一个工作表。 我运行并且没有错误,但它不会将值从活动工作表转移到名为“January”的工作表,在不同的目标 url 谷歌工作表

数据主帖

output 1

output 2

output 3

function myFunction4() {
const spreadsheetIds = [
{ id: "1ShPxDW9qhz4aWgaQ1G9oz7w1yh0-Wfe2VItet95UYks", sheetNames: 
["cab1"] },
{ id: "13Dx3ZOpV7baSTadSApIrVVccN-bHrPlHu240Aux0fo0", sheetNames: 
["cab2"] },
{ id: "14EVlqaP1ilXwopgi0ESvp_IKkSyROSF22WzWAcNAJWc", sheetNames: 
["cab3", "cab4"] }
];

const srcSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
const srcSheet = srcSpreadsheet.getSheetByName("January");
if (!srcSheet) return;
const date = new Date();
const ssName = srcSpreadsheet.getName();
const range = srcSheet.getRange("A2:C" + srcSheet.getLastRow());
let values = range.getValues();
if (values.filter(r => r.join("")).length == 0) return;
values = values.map(r => [...r, date, ssName]);
range.clearContent();
for (let i = 0; i < spreadsheetIds.length; i++) {
const dstSpreadsheet = SpreadsheetApp.openById(spreadsheetIds[i].id);
for (let j = 0; j < spreadsheetIds[i].sheetNames.length; j++) {
  const targetSheet = 
dstSpreadsheet.getSheetByName(spreadsheetIds[i].sheetNames[j]);
  if (targetSheet) {
    targetSheet.getRange(targetSheet.getLastRow() + 1, 1, values.length, 
  values[0].length).setValues(values);
  }
  }
  }
  }

复制到 Google 表格脚本,在下一列中添加日期和源数据

样本视频

这是需要的

当我点击发送按钮时,我想要。 可以在下一列添加日期和来源

日期 = 发送日期

source = 发送它的工作簿的名称

    otherSheetName.getRange(1,getJumlahKolom+1).setValue("Date").setFontWeight("bold").setHorizontalAlignment("center");  
    otherSheetName.getRange(1,getJumlahKolom+2).setValue("source").setFontWeight("bold").setHorizontalAlignment("center");

日期和来源,您要加入 myFunction3() 的 function

我相信你的目标如下。

  • 你想通过修改你的展示脚本来实现你的目标。

在这种情况下,如何进行以下修改?

修改脚本:

function myFunction3() {
  const spreadsheetIds = [
    { id: "1aUoRKCnztsZAvbMwSa8Zk-gB-zfn1KeQnJgWIGRVu24", sheetNames: ["cab1"] },
    { id: "1Eme5Rb9_5kbGaT-HTy5ThR1WYUeR1fkQbn2-8wY-uUY", sheetNames: ["cab2"] },
    { id: "150DduDdhFJLC0LL7iOihYa6V1vaZckvtRxJUqCFFV9Q", sheetNames: ["cab3", "cab4"] }
  ];

  const srcSpreadsheet = SpreadsheetApp.getActiveSpreadsheet();
  const srcSheet = srcSpreadsheet.getSheetByName("input");
  if (!srcSheet) return;
  const date = new Date();
  const ssName = srcSpreadsheet.getName();
  const range = srcSheet.getRange("A2:C" + srcSheet.getLastRow());
  let values = range.getValues();
  if (values.filter(r => r.join("")).length == 0) return;
  values = values.map(r => [...r, date, ssName]);
  range.clearContent();
  for (let i = 0; i < spreadsheetIds.length; i++) {
    const dstSpreadsheet = SpreadsheetApp.openById(spreadsheetIds[i].id);
    for (let j = 0; j < spreadsheetIds[i].sheetNames.length; j++) {
      const targetSheet = dstSpreadsheet.getSheetByName(spreadsheetIds[i].sheetNames[j]);
      if (targetSheet) {
        targetSheet.getRange(targetSheet.getLastRow() + 1, 1, values.length, values[0].length).setValues(values);
      }
    }
  }
}
  • 运行此脚本时,将从源工作表中检索值,并通过添加 2 列日期和源将检索到的值放入目标工作表。

笔记:

  • 请再次确认源工作表名称和目标工作表名称。 因为您的显示脚本的工作表名称似乎与您的示例不同。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM