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
相关产品推荐
相关产品推荐

