You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Office Script在Excel Online正常运行,Power Automate流无文件修改

Power Automate集成Office Script无修改问题排查

我正在搭建第一个正式的Power Automate流,功能是检查最新月度报表,汇总同名产品的数量并写入另一工作表。编写的Office Script在Excel Online中通过按钮直接执行时可成功完成修改,但将其集成到Power Automate流后,流无错误运行,却未对Excel文件产生任何修改。

附Office Script代码

function main(workbook: ExcelScript.Workbook) {
  let wsOversicht = workbook.getWorksheet("Übersicht");
  let today = new Date();
  let currentMonth = today.getMonth() + 1; // Current month (1-based)
  let monthName = today.toLocaleString('default', { month: 'long' });
  let wsData: ExcelScript.Worksheet | undefined = workbook.getWorksheet(monthName);

  if (wsData) {
    // Clear Worksheet "Übersicht" 
    let lastRowOversicht = wsOversicht.getUsedRange()?.getLastRow()?.getRowIndex() ?? 1;
    if (lastRowOversicht > 1) {
      wsOversicht.getRange(`A2:B${lastRowOversicht + 1}`).clear();
    }

    // Create Headers for Column A & B in cell A1 & B1
    wsOversicht.getRange("A1").setValue("Produkt");
    wsOversicht.getRange("B1").setValue(`Menge ${monthName}`);

    // Find last row of current Months sheet
    let lastRowData = wsData.getUsedRange()?.getLastRow()?.getRowIndex() ?? 1;

    // Read all names and add up corresponding numbers
    let articleRange = wsData.getRange(`E2:E${lastRowData + 1}`).getValues();
    let mengeRange = wsData.getRange(`M2:M${lastRowData + 1}`).getValues();

    let overviewData: { [key: string]: number } = {};

    // Loop for all products in sheet
    for (let i = 0; i < articleRange.length; i++) {
      let article = articleRange[i][0];
      let menge = mengeRange[i][0];

      // Initialize writing of product, if not in list yet
      if (!overviewData.hasOwnProperty(article)) {
        overviewData[article] = 0;
      }

      if (typeof menge === "number") {
        overviewData[article] += menge;
      }
    }

    // Writing data into Overview
    let overviewEntries = Object.entries(overviewData);
    let outputRange = wsOversicht.getRange(`A2:B${overviewEntries.length + 1}`);
    let outputValues = overviewEntries.map(([article, menge]) => [article, menge]);

    outputRange.setValues(outputValues);
  } else {
    console.log(`Das Monatsdatenblatt '${monthName}' wurde nicht gefunden.`);
  }
}

已尝试的解决方案

  • 文件权限检查
  • 移除ActiveWorksheet相关逻辑
  • 在脚本执行前后添加10秒延迟

以上方法均未解决问题。

补充信息

  • 流触发方式:手动触发
  • 文件类型:团队库docs文件夹中的.xlsm格式文件(因旧文件夹包含VBA宏)
  • 流参数设置:依次选择团队库、docs文件夹、目标文件、对应Office Script

希望能指出可能的问题所在,或提供有效的排查方法,哪怕判断是代码问题还是流的配置问题也会有很大帮助。

内容的提问来源于stack exchange,提问作者Felix

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 10:53:15