Return Excel 选择中的对象类型
Return Excel object type in selection
在 VBA 中,如果我使用 TypeName(Selection)
,我可以看到当前 select 的对象类型:我得到 Range
、Shape
, ChartArea
,等等
据我所知,在 JS 中没有 Selection
对象,因此我无法验证用户是否在工作表中创建了正确的 selection。目前,我只是坚持使用一个通用错误处理程序,如果用户在我的脚本运行 workbook.getSelectedRange()
.
时没有 select 一个范围,该处理程序将会失败
如何检测工作表中当前select编辑的类型?
编辑:这是我正在使用的代码。
function btnApply_Click() {
Excel.run(function (context) {
var rangeSelection;
return context.sync()
.then(function () {
rangeSelection = context.workbook.getSelectedRange();
rangeSelection.load("values");
return context.sync().catch(function (error) {
throw new u.error.exclamation("The selection must be a cell.");
});
})
.then(function () {
var values = rangeSelection.values;
convertSelection(values);
rangeSelection.values = values;
return context.sync();
})
})
.catch(function (error) { u.error.show(error); });
}
您可以将回调参数传递给 getSelectedDataAsync
方法。 Office 将向此回调传递一个 AsyncResult
对象。在回调中,AsyncResult.value.type
是对象的类型。
在 VBA 中,如果我使用 TypeName(Selection)
,我可以看到当前 select 的对象类型:我得到 Range
、Shape
, ChartArea
,等等
据我所知,在 JS 中没有 Selection
对象,因此我无法验证用户是否在工作表中创建了正确的 selection。目前,我只是坚持使用一个通用错误处理程序,如果用户在我的脚本运行 workbook.getSelectedRange()
.
如何检测工作表中当前select编辑的类型?
编辑:这是我正在使用的代码。
function btnApply_Click() {
Excel.run(function (context) {
var rangeSelection;
return context.sync()
.then(function () {
rangeSelection = context.workbook.getSelectedRange();
rangeSelection.load("values");
return context.sync().catch(function (error) {
throw new u.error.exclamation("The selection must be a cell.");
});
})
.then(function () {
var values = rangeSelection.values;
convertSelection(values);
rangeSelection.values = values;
return context.sync();
})
})
.catch(function (error) { u.error.show(error); });
}
您可以将回调参数传递给 getSelectedDataAsync
方法。 Office 将向此回调传递一个 AsyncResult
对象。在回调中,AsyncResult.value.type
是对象的类型。