Office Script (TypeScript) 代码每次运行时前进一个单元格

Office Script (TypeScript) code to advance one cell every time the code runs

编码天才

我正在使用以下脚本代码将图像从 power automate 提取到 excel:

function main(workbook: ExcelScript.Workbook, sheetName: string, address: string,     base64ImageString: string) {
  let sheet = workbook.getWorksheet(sheetName);
  let range = sheet.getRange(address);
  let OldDevSNimg = sheet.addImage(base64ImageString);

  for (let i = 0; i < 3; i++) {

    let nextcell = range.getOffsetRange(+1, 0);

    OldDevSNimg.setTop(nextcell.getTop());
    OldDevSNimg.setLeft(nextcell.getLeft());
    OldDevSNimg.setWidth(300);
    OldDevSNimg.setHeight(400);
    OldDevSNimg.setLockAspectRatio(true);
    OldDevSNimg.setPlacement;
    OldDevSNimg.incrementTop(3);
    OldDevSNimg.incrementLeft(5);

  }
}

Power Automate 流程正在发送一个列,其中包含共享点列表中的多个图像,这些图像需要放在各自的行中...我遇到的问题是每个图像都出现并放在一个图像之上另一个。

我正在为来自 power automate 的每个图像使用 for 循环或某种动态更改到下一行(在同一列中)的方法而苦苦挣扎。

如有任何帮助,我们将不胜感激!抱歉,我是 TypeScript 的新手,无法获得正确的语法或表达式。

提前致谢!

这个小例子将从单元格 A3 开始,并向下偏移到下一行,循环 5 次...

function main(workbook: ExcelScript.Workbook)
{
  let worksheet = workbook.getActiveWorksheet();

  for(var i = 1; i <= 5; i++) {   
    var nextCell = worksheet.getCell(2, 0).getOffsetRange(i, 0);
    nextCell.setFormula("=ROW()");
  }
}

...getOffsetRange 在每个循环中从 A3 移动行数。

所以你这行...

let nextcell = range.getOffsetRange(+1, 0);

...确实需要考虑 for 循环中的迭代(即 i 的值)。

应该更像这样...

let nextcell = range.getOffsetRange(i, 0);

... 并且您的 for 循环应该从 1 开始,而不是 0 ...

for (let i = 1; i <= 3; i++)

...类似的东西。