Excel VBA复制图表至其他工作表报错(800401d0)求助
解决VBA复制图表为图片时的(800401d0)错误
错误原因
这个报错通常是因为直接复制ChartObject容器而非内部的Chart对象,或者频繁的Activate操作干扰了图表的复制状态,部分特殊图表类型(如雷达图、饼图)对直接复制容器的兼容性较差。
修正后的代码
避免使用Activate/Select这类易引发状态问题的操作,直接操作图表对象本身:
' 直接获取Summary工作表中的目标Chart对象 Dim targetChart As Chart Set targetChart = Sheets("Summary").ChartObjects("Chart 1").Chart ' 以屏幕显示效果复制图表为图片格式 targetChart.CopyPicture Appearance:=xlScreen, Format:=xlPicture ' 将图片粘贴到Scene 1工作表的B28单元格位置 Sheets("Scene 1").Range("B28").PasteSpecial
额外优化建议
- 若需精准控制粘贴格式,可给
PasteSpecial指定参数,比如Paste:=xlPasteAll - 循环操作时,建议调整每次粘贴的位置避免图片重叠:
Dim i As Integer For i = 1 To 5 ' 此处添加更新Y轴数值的代码... targetChart.CopyPicture Appearance:=xlScreen, Format:=xlPicture ' 每次粘贴位置向下偏移30行 Sheets("Scene 1").Range("B28").Offset((i - 1) * 30, 0).PasteSpecial Next i
内容的提问来源于stack exchange,提问作者IGOR
相关产品推荐
相关产品推荐

