2016-05-31 59 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),然后参加所有格式设置。