2014-02-14 3 views
1

VBA를 사용하여 특히 Excel에서 차트 서식을 지정하는 데 상당히 익숙하지만 이미 문제가 발생했습니다. 그래프를 생성하려고하지만 사용 가능한 데이터에 따라 참조 셀의 행이 달라집니다.차트 데이터 범위를 동적으로 조정하는 VBA 함수

지금 데이터가 AE741 : AG762 범위에 있지만 다음 반복에서는 행이 다를 수 있습니다. 사용 가능한 데이터에 따라 차트 데이터 범위를 동적으로 조정하는 코드를 작성할 수 있습니까? 내가 가지고있는 것은 행 참조 (즉, 현재 데이터 741에서 762까지의 데이터 시작 및 끝 위치를 알고있는 각 반복마다)입니다. 나는 또한 다른 셀에서보고 된 범위 주소를 가지고 있는데, 나의 경우 셀 Y10은 AE741 : AG762 값을 갖는다.

내가 필요로하는 유일한 일은이 범위 값을 VBA 함수로 호출하는 것입니다.

Chart_Test Macro 
Set myRange = Workbook().Worksheet(3).Cell(25, 10).Value 
ActiveSheet.Shapes.AddChart.Select 
ActiveChart.ChartType = xlLine 
ActiveChart.SetSourceData Source:=Range("AE741:AG762") 
ActiveChart.SeriesCollection(2).Select 
ActiveChart.SeriesCollection(2).AxisGroup = 2 
ActiveChart.SeriesCollection(2).Select 
ActiveChart.Legend.Select 
Selection.Delete 
ActiveChart.Axes(xlCategory).Select 
ActiveChart.SeriesCollection(2).Select 
ActiveChart.SeriesCollection(2).ChartType = xlColumnClustered 
ActiveChart.SeriesCollection(2).Select 
With Selection.Format.Fill 
    .Visible = msoTrue 
    .ForeColor.ObjectThemeColor = msoThemeColorAccent6 
    .ForeColor.TintAndShade = 0 
    .ForeColor.Brightness = -0.25 
    .Transparency = 0 
    .Solid 
End With 
ActiveChart.SeriesCollection(1).Select 
With Selection.Format.Line 
    .Visible = msoTrue 
    .ForeColor.RGB = RGB(0, 176, 240) 
    .Transparency = 0 
End With 
End Sub 

감사합니다. 벤자민

답변

0

변경이 라인 :이 사람에게

Set myRange = Workbook().Worksheet(3).Cell(25, 10) 
ActiveChart.SetSourceData Source:=Range("AE741:AG762") 

:

Dim myRange As Range 'myRange must be declared as Range 
'Ensure that "ThisWorkbook" is alright for you, meaning that you are running this code 
'from the Workbook containing the value you want at cell(25,10) 
Set myRange = ThisWorkbook.Worksheets(3).Cell(25, 10) '.Cell(25, 10) Or .Range("Y10") 
ActiveChart.SetSourceData Source:=Range(myRange.Address) 
'Or simply 
ActiveChart.SetSourceData Source:=myRange 
관련 문제