我正在尝试将 Excel 图表另存为图像。
通过整个代码,我调用了几个工作簿,查找所有工作表并保存所有图表。
以下代码适用于 Excel 2007 和 2010(但由于 + 4,有可见的水平线和垂直线)。如果我改变Round(shp.Width + 4, 0)
to Round(shp.Width, 0)
我在 2010 年收到以下错误(但在 2007 年没有):
运行时错误'-2147467259 (80004005)':
指定的维度对于当前图表类型无效。
Dim shp As Shape
Dim sht As Worksheet
Set sht = Application.ActiveWorkbook.Sheets(shtName)
Set shp = sht.Shapes(chrtName)
shp.CopyPicture xlScreen, xlBitmap
Dim objChart As ChartObject
Set objChart = sht.ChartObjects.Add(200, 200, Round(shp.Width + 4, 0), Round(shp.Height + 4, 0))
objChart.Activate
ActiveChart.Paste
ActiveChart.Export Filename:=fullPath, Filtername:=Right(fullPath, 3)
objChart.Delete
如何避免使用+4?
我发现了以下内容:
“每当默认图表类型设置为您尝试创建的图表类型之外的其他图表类型时,就会出现此问题。例如,如果您尝试创建折线图,并且 Excel 中的默认图表是 OHLC(烛台股票图表),则Excel 会很快抱怨“指定的维度对于当前图表类型无效”。即使您尝试从 VB.NET 创建图表,也会发生同样的情况。因此,首先将默认图表类型更改为一些基本图表类型就像折线图一样。问题就会解决。”http://www.excelbanter.com/showthread.php?t=204071 http://www.excelbanter.com/showthread.php?t=204071
我怎样才能用 VBA 做到这一点?
我也遇到了同样的例外。我跟踪问题到了保存路径。
如果保存路径错误,或者指定的路径不存在,则会引发此异常。检查以确保该路径存在。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)