我正在尝试将 Excel 图表保存为图像。
使用整个代码,我调用了几个工作簿,查找所有工作表并保存所有图表。
以下代码适用于 Excel 2007 和 2010(但由于 + 4,水平线和垂直线可见)。如果我将 Round(shp.Width + 4, 0)
更改为 Round(shp.Width, 0)
,我会在 2010 年(但不是 2007 年)收到以下错误:
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?
我发现了以下内容:
我怎样才能用 VBA 做到这一点?
最佳答案
用Set objChart = Worksheet.Shapes.AddChart2().Chart.Parent
代替Set objChart = Worksheet.ChartObjects.Add()
前一个函数允许您在第二个参数中指定基本图表类型。
关于excel - 指定形状宽度会产生错误 : The specified dimension is not valid for the current chart type,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11447914/