You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Excel VBA调用Regress插件跨工作表输出时图表为空求助

问题:Excel VBA调用Regress工具跨工作表输出时图表无数据

在Excel 365中,通过VBA调用分析工具库的Regress函数时出现异常:

  • 当回归结果输出至输入数据所在的input工作表时,所有内容(含图表)均正常显示;
  • 当输出至另一提前创建的output工作表时,回归参数计算正确,但图表仅显示框架、无数据(通过「选择数据」确认无关联数据源);
  • 宏位于Module1中,运行无报错信息。

宏代码如下:

Sub Makro2()
 ' output in same sheet as input
 Sheets("input").Activate
 Application.Run "ATPVBAEN.XLAM!Regress", _
 Sheets("input").Range("$A$1:$A$11"), _
 Sheets("input").Range("$C$1:$D$11"), _
 False, True, , _
 Sheets("input").Range("A20"), _
 True, True, True, True, , True
 
 ' output in other sheet
 Sheets("input").Activate
 Application.Run "ATPVBAEN.XLAM!Regress", _
 Sheets("input").Range("$A$1:$A$11"), _
 Sheets("input").Range("$C$1:$D$11"), _
 False, True, , _
 Sheets("output").Range("A1"), _
 True, True, True, True, , True
End Sub

问题原因

ATPVBAEN.XLAM中的Regress工具在生成图表时,内部数据源关联逻辑依赖当前激活的工作表:

  1. 输出到input表且激活状态为input时,图表的数据源引用能正确指向当前表的单元格,显示正常;
  2. 输出到output表但仍激活input时,工具生成图表会错误地以激活的input为基准构建数据源引用,导致output表中的图表无法匹配到正确数据源(实际数据在input,但引用未关联正确的工作表前缀)。

解决办法

在调用Regress输出到目标工作表前,先激活该输出工作表,确保工具的图表生成逻辑能正确处理跨表数据源引用:

Sub Makro2_Fixed()
 ' output in same sheet as input
 Sheets("input").Activate
 Application.Run "ATPVBAEN.XLAM!Regress", _
 Sheets("input").Range("$A$1:$A$11"), _
 Sheets("input").Range("$C$1:$D$11"), _
 False, True, , _
 Sheets("input").Range("A20"), _
 True, True, True, True, , True
 
 ' output in other sheet (fixed version)
 Sheets("output").Activate ' 先激活输出工作表
 Application.Run "ATPVBAEN.XLAM!Regress", _
 Sheets("input").Range("$A$1:$A$11"), _
 Sheets("input").Range("$C$1:$D$11"), _
 False, True, , _
 Sheets("output").Range("A1"), _
 True, True, True, True, , True
End Sub

内容的提问来源于stack exchange,提问作者Data4711

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.14 11:42:42