SSIS脚本任务调用宏无法刷新SharePoint至XLSM的最新数据
1. 检查SSIS脚本调用的宏名称
你的SSIS脚本里执行的是Customerformat宏,但你提供的刷新SharePoint数据的宏是Refresh_Customerconn。要么确认Customerformat内部已经调用了Refresh_Customerconn,要么直接修改SSIS脚本,换成正确的宏名称:
xlApp.Run("Refresh_Customerconn");
2. 优化VBA宏,确保刷新完成
默认的RefreshAll可能在Power Query还没完成数据刷新时就结束了,导致保存的还是旧数据。修改宏代码,添加等待逻辑:
Sub Refresh_Customerconn() Application.ScreenUpdating = False ActiveWorkbook.RefreshAll ' 等待所有刷新和计算完成 Do Until Application.CalculationState = xlDone DoEvents Loop Application.ScreenUpdating = True End Sub
3. 调整Excel连接的刷新配置
打开你的XLSM文件,按以下步骤操作:
- 点击数据选项卡,选择连接
- 找到对应SharePoint的Power Query连接,双击打开属性
- 确保刷新控件里的允许后台刷新已勾选,同时勾选刷新数据时打开文件
- 保存文件后重新测试
4. 解决权限与运行上下文问题
- 如果用SQL Server Agent调度SSIS包,Agent的服务账号必须有权限访问目标SharePoint站点,同时能读写XLSM文件所在路径(别用个人桌面路径,建议移到服务器本地或共享文件夹,给Agent账号分配读写权限)
- 服务器上必须安装对应版本的Office,并且在组件服务中配置Excel的DCOM权限:
- 打开组件服务→计算机→我的电脑→DCOM配置
- 找到Microsoft Excel应用程序,右键属性→安全
- 在启动和激活权限里添加SSIS运行账号,授予本地启动和本地激活权限
5. 重新保存Power Query凭据
手动刷新时的凭据可能没在SSIS运行的上下文中生效,重新配置一次:
- 打开Power Query编辑器,编辑SharePoint数据源
- 重新输入访问凭据,选择保存凭据,然后保存文件
内容的提问来源于stack exchange,提问作者Harinanth
相关产品推荐
相关产品推荐

