2014-10-17 3 views
0
Sub onButtonClick() 

Dim source As Worksheet, target As Worksheet 
Set source = Workbooks("End Market Monitor.xlsm").Worksheets("Aero Graphs") 
Set target = Sheet1 

Dim ws As Worksheet 
Dim title_name As String, search As String 



search = ActiveCell.Offset(0, -5).Value 
ReDim chartArray(1 To source.ChartObjects.Count) As Chart 
For i = 1 To source.ChartObjects.Count 
    title_name = source.ChartObjects(i).Chart.ChartTitle.Text 
    counter = 1 
    If InStr(title_name, search) > 0 Then 
     Set chartArray(counter) = source.ChartObjects(i).Chart 
     counter = counter + 1 
    End If 

Next 
Set wsTemp = Sheets.Add 

    tp = 10 

    With wsTemp 
     For n = 1 To UBound(chartArray) 
      chartArray(n).CopyPicture 
      wsTemp.Range("A1").PasteSpecial 
      Selection.Top = tp 
      Selection.Left = 5 
      tp = tp + Selection.Height + 50 
     Next 
    End With 

    wsTemp.ExportAsFixedFormat Type:=xlTypePDF, Filename:=NewFileName, Quality:=xlQualityStandard, _ 
      IncludeDocProperties:=True, IgnorePrintAreas:=False, OpenAfterPublish:=True 
End Sub 

검색 변수에 문제가 있습니다. 개체 정의 오류가 계속 발생하고 이유를 모르겠다 ... 내가 Cells.Offset을 사용해야할까요?VBA 단추 배열에서 차트 배열 내보내기

또한 차트 배열을 반복 할 때 각 루프마다 for를 사용할 수 없기 때문에 1부터 배열의 상한까지 반복해야했습니다. 이것은 가능한가?

+0

당신은 오류은 "정의 개체"점점? – JNevill

+0

검색시 = Activecell.offset (0, -5). 동시에, 나는 chartArray에 실패한 copypicture 메소드를 얻는다. –

답변

0

ActiveCell.Offset(0,-5)이 존재하지 않는 셀을 선택하려고하기 때문에 개체 정의 오류가 발생하고 있습니다. ActiveCell이 A, B, C, D 또는 E 열에 있으면 A 앞에 열이 없으므로이 오류가 표시됩니다. "ActiveCell"보다 구체적 일 수 있습니다. 차트를 통해 반복에 관해서는

, 다음과 같은 작업을해야합니다 : 어떤 줄에

Dim ChartObj as Chartobject 
For each ChartObj in Source.ChartObjects 
    .... 
Next ChartObj