Office JS/Office Scripts中与VBA的OLEDBConnection.CommandText等价对象是什么
结论
目前Office Scripts(底层基于Office JS API)暂未提供与你提到的VBA语句mytable.tableobject.workbookconnection.oledbconnection.commandtext功能完全等价的公开操作接口,你想要的动态修改DAX查询命令再刷新关联表格的逻辑暂时无法通过原生Office Scripts直接复现。
现有能力边界说明
- Office Scripts当前开放的API仅覆盖常规工作表、表格操作、公式编辑、单元格格式设置、基础数据读写等通用场景,针对Power Pivot数据模型、工作簿OLEDB连接属性修改、动态DAX查询触发这类能力尚未对外开放
- 仅支持对提前配置好的关联数据模型的表格执行刷新操作,无法动态修改其查询命令
可行替代方案
- 提前在Excel文件中配置好关联数据模型的
dxtDAXHub表格和对应的固定DAX查询,仅需要刷新数据的场景可以直接调用如下脚本:
function main(workbook: ExcelScript.Workbook) { // 按名称获取目标表格 const daxHubTable = workbook.getTable("dxtDAXHub"); // 刷新表格关联的数据源连接 daxHubTable.refresh(); }
- 如果你需要动态传入DAX查询脚本,可以搭配Power Automate流实现:在Office Scripts中生成动态DAX脚本后传递给Power Automate流,通过流的Excel Online连接器或者Power BI REST API执行DAX查询,再将查询结果写回Excel指定表格即可。
内容的提问来源于stack exchange,提问作者Mark Sheridan
相关产品推荐
相关产品推荐

