gpt4 book ai didi

javascript - "Excel.run"是否不适用于用户定义的函数?

转载 作者:行者123 更新时间:2023-11-28 16:55:39 26 4
gpt4 key购买 nike

有没有办法使用 Excel.run 从工作簿中获取数据,然后使用该数据和参数来计算 UDF?我知道您可以从互联网获取数据并得出一个数字(https://learn.microsoft.com/en-us/office/dev/add-ins/tutorials/excel-tutorial-create-custom-functions?tabs=excel-windows 请参阅标题“创建从网络请求数据的自定义函数”)下面是我的 Excel 示例

/**
* Bending (Minutes)
* @customfunction bendingMinutes
* @param {number} lotRun
* @param {number} bendLengthInches
* @param {number} numOfBends
* @param {number} easy1OrHard2
* @returns {number} bendingMinutes
*/
async function bendingMinutes(lotRun, bendLengthInches, numOfBends, easy1OrHard2) {
try {
let procEff;
let secsPerBend;
await Excel.run(async (context) => {
const rangeProc = context.workbook.worksheets.getItem("Table").getRange("A2:B7");
const rangeSecs = context.workbook.worksheets.getItem("Table").getRange("D2:E7");
procEff = context.workbook.functions.lookup(lotRun, rangeProc);
secsPerBend = context.workbook.functions.lookup(bendLengthInches, rangeSecs);
procEff.load('value');
secsPerBend.load('value');
await context.sync();
const response = await fetch(procEff.value);
const response1 = await fetch(secsPerBend.value);
console.log(procEff.value);
console.log(secsPerBend.value);
});
if (easy1OrHard2 == 1) {
return (secsPerBend.value * numOfBends / procEff.value / 60);
} else {
return ((secsPerBend.value * numOfBends / procEff.value / 60) * 1.2);
}
} catch (errorHandlerFunction) {
};
}

enter image description here

enter image description here

最佳答案

目前自定义函数不支持调用Excel JS API。您可以使用 SharedApp 模式在自定义函数中调用 Excel JS API( https://learn.microsoft.com/en-us/office/dev/add-ins/tutorials/share-data-and-events-between-custom-functions-and-the-task-pane-tutorial )请问您为什么要从 API 而不是参数中获取表信息?如果您使用 API 来获取它们,则如果表中的值更新,自定义函数将不会重新计算。

关于javascript - "Excel.run"是否不适用于用户定义的函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59286513/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com