Excel 在线 Office 脚本。从 worksheet2 复制范围 A1:J10 并将其粘贴到另一个 sheet 的 A 列的最后一行

Excel online Office-Scripts . Copy Range A1:J10 from worksheet2 and paste it on last row of column A of another sheet

我需要一些帮助,我可以在 Excel VBA 中完成,但无法在 Excel 在线中找到帮助。 我有下面的示例 1,但它不是动态的,我需要将它粘贴到最后一行下。 如果您能提供帮助,请提供示例或编辑代码并重新发送。谢谢。

//Example 1
  function main(workbook: ExcelScript.Workbook) {
    let data_sheet = workbook.getWorksheet("Data")
    let progr_sheet = workbook.getWorksheet("Programming");
// Paste to range A1 on progr_sheet from range A4:L19 on data_sheet
  progr_sheet.getRange('A4').copyFrom(data_sheet.getRange("A4:L19"), ExcelScript.RangeCopyType.all, false, false);
}

//Example 2 [Below doesn't work just and example of what I am trying to do.]
// function main(workbook: ExcelScript.Workbook) {
//   let data_sheet = workbook.getWorksheet("Data")
//   let progr_sheet = workbook.getWorksheet("Programming");
//   let myUsedRange = progr_sheet.getUsedRange();
//   let lastRow = myUsedRange.getRowCount();
//   console.log(lastRow) +1;
//   // Paste to range column A (lastRow) on progr_sheet from range A4:L19 on data_sheet
//   progr_sheet.getRange('A & lastRow').copyFrom(data_sheet.getRange("A4:L19"), ExcelScript.RangeCopyType.all, false, false);
//}

我认为您已经完成了大部分工作。你的问题是这一行

  progr_sheet.getRange('A & lastRow').copyFrom(data_sheet.getRange("A4:L19"), ExcelScript.RangeCopyType.all, false, false);

您可以通过更改此部分来修复它:

'A & lastRow'

为此:

'A' + lastRow

请注意,根据您的代码当前的结构方式,它会覆盖您编程中的最后一行数据 sheet。要将数据复制到下一行,您只需将 1 添加到 lastRow 变量,如下所示:

let lastRow = myUsedRange.getRowCount() + 1;

此外,对于以后类似的问题,我还会添加 Office 脚本标签,以便那里的人可以查看您以后的问题并为您提供帮助。

我认为您可能使用的是 Office 脚本,而不是 Office JS Add-ins。

如果我是对的,那么试试这个...

function main(workbook: ExcelScript.Workbook)
{
  let data_sheet = workbook.getWorksheet("Data")
  let progr_sheet = workbook.getWorksheet("Programming");

  // Get the last row in the programming worksheet.
  // We add another 1 because it returns the index which starts from 0 and 
  // I'm not using getRowCount() because if your worksheet doesn't start using
  // from cell A1, your row count may not equal the last actual row.
  let lastRow = progr_sheet.getUsedRange().getLastCell().getRowIndex() + 1;

  console.log(lastRow);

  // Add 1 to the last row so we start from the next blank.
  lastRow = lastRow + 1

  progr_sheet.getRange("A" + lastRow).copyFrom(data_sheet.getRange("A4:L19"));
}

...我无法查明所有问题,但这一行...

progr_sheet.getRange('A & lastRow')

... 对您不起作用。这将作为字符串 A & lastRow.