2016-05-31 167 views
0

我想定義一個VB宏,它可以從我的NormLinear選項卡中的數據創建散點圖。繪圖的y值數據在一列中,而x軸數據標籤在另一個不連續的列中(沒有任何x值)。我試圖保持y軸的尺寸不變,因爲數據是標準化的。我希望在y = 0.25和y = 2.5處添加一個可接受的y值最大值和最小值線,或者在此範圍之外繪製背景的不同陰影。Excel宏散點圖

我得到一個圖表出現,但是當我點擊該選項卡時,它被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

您的代碼在Excel 2016 for Windows中似乎很適合我。但是,在某些版本的Excel中,如果圖表中沒有數據,則無法使用圖表標題和圖例以及其他元素。創建圖表後立即添加數據(即SetSourceData),然後參加所有格式設置。