首页 > 解决方案 > 将图表复制/粘贴为图片

问题描述

错误:指定的维度对当前图表类型无效

我有一个带有 VBA 代码的 Excel 文件。此文件打开许多其他 excel 文件,并获取单元格范围和图表/作为图片/将它们粘贴到其工作表中。此代码是打开源 excel 文件的 Sub 的一部分,从源文件复制图表并将其粘贴到带有 VBA 代码的工作簿中。

wsheetSource.ChartObjects(chart1Name).CopyPicture
wsheet.Range(char1Pos).PasteSpecial
wsheet.Pictures(wsheet.Pictures.Count).Name = chart1Name 'gives name of the last pasted picture
Set shp = wsheet.Shapes(chart1Name)
shp.LockAspectRatio = msoTrue


wsheetSource.ChartObjects(chart2Name).CopyPicture
wsheet.Range(char2Pos).PasteSpecial
wsheet.Pictures(wsheet.Pictures.Count).Name = chart2Name 'gives name of the last pasted picture
Set shp = wsheet.Shapes(chart2Name)
shp.LockAspectRatio = msoTrue

错误:当我在 copyPicture 或 PasteSpecial 方法上运行此 Sub 几次时,出现错误消息:运行时错误“-2147221040 (800401d0)”:指定的维度对当前图表类型无效

当我单击调试并再次运行问题行时,代码会复制/粘贴图表。我不知道应该做什么条件才能发生此错误。我认为问题出在剪贴板/因为在几秒钟内我做了很多复制/粘贴操作/,尝试在 Sub 启动时清除剪贴板,但没有成功。如何避免此错误/大问题:为什么有时会出现错误,有时-没有/有没有办法添加语句为:如果在这行代码中出现错误,请尝试再次执行此行/正如我提到的:如果我点击调试,转到问题行并点击播放按钮,代码开始运行/

BR

标签: excelvba

解决方案


推荐阅读