使用 Excel 内置函数从自定义函数调用 Microsoft Excel API?
Call Microsoft Excel APIs from a custom function using Excel built-in functions?
由于这个 link Call Microsft Excel APIs from a custom function,我从自定义函数成功调用了我的第一个 Microsoft Excel API。但是,我正在尝试在我的自定义函数中添加 VLOOKUP 内置 Excel 函数。在为我的代码尝试了多种方法后,我仍然得到了#VALUE!在细胞中。我的代码缺少什么?我知道这是 5 月 11 日生产的全新产品,所以此功能还不可用吗?
/**
* @customfunction
* @param firstName person's first name
**/
export async function getRangeValue (firstName: string) {
let lastName;
let context = new Excel.RequestContext();
const range = context.workbook.worksheets.getActiveWorksheet().getRange("A1:C5");
range.load();
await context.sync();
lastName = context.workbook.functions.vlookup(firstName, range, 3, false);
lastName.load('value');
await context.sync();
return lastName.value;
}
=CONTOSOSHARE.GETRANGEVALUE("Happy")
由于函数中有两次调用,请考虑使用Exce.run。例如:
export async function getRangeValue (firstName: string) {
let lastName;
await Excel.run(async (context) => {
const range = context.workbook.worksheets.getActiveWorksheet().getRange("A1:B5");
range.load();
await context.sync();
lastName = context.workbook.functions.vlookup("Happy", range, 2, false);
lastName.load("value");
await context.sync();
console.log(lastName.value);
});
return lastName.value;
}
如果有效请告诉我。
由于这个 link Call Microsft Excel APIs from a custom function,我从自定义函数成功调用了我的第一个 Microsoft Excel API。但是,我正在尝试在我的自定义函数中添加 VLOOKUP 内置 Excel 函数。在为我的代码尝试了多种方法后,我仍然得到了#VALUE!在细胞中。我的代码缺少什么?我知道这是 5 月 11 日生产的全新产品,所以此功能还不可用吗?
/**
* @customfunction
* @param firstName person's first name
**/
export async function getRangeValue (firstName: string) {
let lastName;
let context = new Excel.RequestContext();
const range = context.workbook.worksheets.getActiveWorksheet().getRange("A1:C5");
range.load();
await context.sync();
lastName = context.workbook.functions.vlookup(firstName, range, 3, false);
lastName.load('value');
await context.sync();
return lastName.value;
}
=CONTOSOSHARE.GETRANGEVALUE("Happy")
由于函数中有两次调用,请考虑使用Exce.run。例如:
export async function getRangeValue (firstName: string) {
let lastName;
await Excel.run(async (context) => {
const range = context.workbook.worksheets.getActiveWorksheet().getRange("A1:B5");
range.load();
await context.sync();
lastName = context.workbook.functions.vlookup("Happy", range, 2, false);
lastName.load("value");
await context.sync();
console.log(lastName.value);
});
return lastName.value;
}
如果有效请告诉我。