我正在尝试将 Excel 图表保存为图像。
使用整个代码,我调用了几个工作簿,查找所有工作表并保存所有图表。
以下代码适用于 Excel 2007 和 2010(但由于 + 4 存在可见的水平和垂直线)。如果我将其更改为Round(shp.Width + 4, 0)
2010Round(shp.Width, 0)
年(但不是 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
我怎样才能用 VBA 做到这一点?