2016-07-22 4 views

ответ

0

Вы можете использовать TopLeftCell и BottomRightCell найти диаграмму между заданным диапазоном.

Sub testChart() 
Dim oChart As Chart 

'/ Selecet the chart , if found in Range D4:F10 
Set oChart = findChart(Sheet1.Range("D4:F10")) 
If Not oChart Is Nothing Then 
    oChart.Parent.Select 
Else 
    MsgBox "No chart found." 
End If 

End Sub 

Function findChart(ByVal rngChart As Range) As Chart 

    Dim oChart  As Chart 
    Dim oChartObj As ChartObject 
    Dim wksChart As Worksheet 
    Dim rngCArea As Range 

    Set wksChart = rngChart.Parent 

    For Each oChartObj In wksChart.ChartObjects 
     Set rngCArea = Intersect(wksChart.Range(rngChart.Address), wksChart.Range(oChartObj.TopLeftCell, oChartObj.BottomRightCell)) 
     If Not rngCArea Is Nothing Then 
      Set oChart = oChartObj.Chart 
     End If 
    Next 

    Set findChart = oChart 

End Function 
+0

, если это решение работает, то пометить его как ответил: http://stackoverflow.com/help/someone-answers, http://meta.stackexchange.com/questions/173399/how-to-upvote- на стек-перелива – cyboashu

Смежные вопросы