2014-09-11 3 views
0

다음 VBa 코드를 사용하여 그래프를 만들려고합니다. 그러나 행에 Run-time error 424 - Object required이 표시됩니다.그래프 만들기 - 런타임 오류 424 - 필요한 개체

Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 1) 

어떤 문제가됩니까?

Sub MakeGraph() 
    Dim myChtObj As ChartObject 
    Dim rngChtData As Variant 
    Dim rngChtXVal As Variant 
    Dim iColumn As Long 

    sel= Sheets("Data").Range(Cells(1, 1), Cells(200, 2)) 
    rngChtData = sel 

    ' define chart's X values 
    With rngChtData 
     Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 1) 
    End With 

    ' add the chart 
    Set myChtObj = ActiveSheet.ChartObjects.Add(Left:=250, Width:=425, Top:=10, Height:=240) 
    With myChtObj.Chart 

     ' make an XY chart 
     .ChartType = xlLine 

     ' remove extra series 
     Do Until .SeriesCollection.Count = 0 
      .SeriesCollection(1).Delete 
     Loop 

     ' add series from selected range, column by column 
     For iColumn = 2 To rngChtData.Columns.Count 
      With .SeriesCollection.NewSeries 
       .Values = rngChtXVal.Offset(, iColumn - 1) 
       .XValues = rngChtXVal 
       .Name = rngChtData(1, iColumn) 
      End With 
     Next 

    End With 

End Sub 
+0

@SiddharthRout @SiddharthRout @SiddharthRout 앞에 Set을 입력하면 동일한 오류가 발생합니다. – Amir

+0

앞에서'Set'가 필요합니다 :'Set rngChtData = sel' – Rory

답변

0

당신은 Range 객체처럼 rngChtData 및 rngChtXVal 지명했지만, 당신은 Variant로 선언했습니다. Variants는 Ranges 일 수 있지만 코드 디버깅이 훨씬 어려워집니다. 가능한 경우 명시 적 변수 유형을 사용하십시오. 문제를 해결하려면 코드를 다음과 같이 변경하십시오.

Sub MakeGraph() 
Dim myChtObj As ChartObject 
Dim rngChtData As Range 
Dim rngChtXVal As Range 
Dim iColumn As Long 

With Sheets("Data") 
    Set rngChtData = .Range(.Cells(1, 1), .Cells(200, 2)) 
End With 

' define chart's X values 
With rngChtData 
    Set rngChtXVal = .Columns(1).Offset(1).Resize(.Rows.Count - 1) 
End With 
+0

범위를 다른 서브의 입력이 될 것이므로 배열로 유지하고 싶습니다. 그래서 그것은 다른 그래프를 위해 바뀔 것입니다. – Amir

+0

당신은'Range' 객체의'Offset' 메쏘드를 사용하고 있습니다. 그래서 당신이 정말로 원하는 것을 선택해야합니다 - 2 차원 배열이나 범위 객체. –

+0

배열에서 그래프를 만들고 싶습니다. 내가 VBA에서 어떻게 할 수 있는지 조언 해 줄 수 있니? – Amir

관련 문제