vba를 이미지로 사용하여 Excel 다이어그램을 저장하려고합니다. 전체 코드에서 여러 통합 문서를 호출하고 모든 워크 시트를 찾아 모든 다이어그램을 저장합니다. 다음 코드는 Excel 2007 및 2010에서 작동합니다 (단, + 4로 인해 수평선 및 수직선이 표시됨). Round (shp.Width + 4, 0)를 Round (shp.Width, 0)로 변경하면 2010 년에 다음 오류가 발생합니다 (2007 년은 아니지만).VBA Excel : 지정된 차원이 현재 차트 유형에 유효하지 않습니다.
런타임 오류 '-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로이 작업을 수행하는 방법을 알지 못합니다.
의도하지 않은 투표 ... 죄송합니다. – Hoakie
@jon, 존재하지 않는 셀을 "선택"할 수있는 방법은 무엇입니까? 행 .Range ("A1"). Offset (.Rows.Count + 1) .Select는 테스트에서 예외를 throw하는데, 행 .Rows.Count + 1이 없기 때문에 의미가 있습니다. – OfficeAddinDev
좋은 지적. 나는 그것을 '-1'로 바꿨다. –