2016-05-31 3 views
0

NormLinear 탭의 데이터에서 scatterplot 차트를 만드는 VB 매크로를 정의하려고합니다. 플롯의 y 값 데이터는 한 열에 있고 x 축 데이터 레이블은 다른 비 연속 열에 있습니다 (x 값이 없음). 나는 데이터가 정상화 되었기 때문에 y 축 치수를 고정 시키려고 시도하고있다. y = 0.25 및 y = 2.5에서 플롯에 수용 가능한 y 값 최대 및 최소 라인을 추가하거나이 범위 밖의 플롯 배경의 다른 음영을 추가하고자합니다.Excel Macro Scatterplot

나는 차트를 볼 수 있지만이 탭을 클릭하면 MS Excel에서 변경됩니다 -이 이상하고 어려운 디버깅 찾으십시오. 또한 내가 FALSE로 설정하더라도 범례가 계속 표시됩니다. OSX v10.9.5 및 MS Office 2011을 실행하는 Mac을 사용 중입니다. 귀하의 협조에 감사드립니다.

Public Sub aMakeplot() 

Dim work_book As Workbook 
Dim r As Integer 
Dim chart_shape As Shape 
Dim i As Long 
Dim objSelection As Range, objSrcData As Range, objCategories As Range 

Set work_book = Application.ActiveWorkbook 
ActiveWorkbook.Sheets("NormLinear").Select 

Set objChart = Charts.Add 

With objChart 
    ' Set its properties 
    .ChartType = xlXYScatter 
    .Location Where:=xlLocationAsNewSheet 
    .HasTitle = True 
    .ChartTitle.Text = "Sample Mean Value for all Slides " 
    .HasLegend = False 
    .Axes(xlValue).MinimumScale = -3 
    .Axes(xlValue).MaximumScale = 3 

    .Axes(xlCategory, xlPrimary).HasTitle = True 
    .Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Sample Descriptions" 
End With 

' Create a single range from the union of 
' categories and selected data, and then 
' update the chart. 
Set objCategories = ActiveWorkbook.Sheets("NormLinear").Range("h12:h23") 
Set objSelection = ActiveWorkbook.Sheets("NormLinear").Range("p12:p23") 

Set objSrcData = Union(objCategories, objSelection) 
objChart.SetSourceData objSrcData 

ActiveWorkbook.Sheets("NormLinear").Select 

End Sub 

답변

0

Windows 용 Excel 2016에서 코드가 올바르게 작동하는 것처럼 보였습니다. 그러나 일부 Excel 버전에서는 차트에 데이터가 없으면 차트 제목, 범례 및 기타 요소를 사용하여 많은 작업을 수행 할 수 없습니다. 차트를 만들 자마자 데이터를 추가 한 다음 (즉, SetSourceData) 모든 서식을 확인합니다.