Excel宏散点图

时间:2016-05-31 15:36:46

标签: excel vba charts macros

我正在尝试定义一个VB宏,它根据我的NormLinear选项卡中的数据创建散点图。 Plot的y值数据在一列中,x轴数据标签在另一个非连续列中(没有任何x值)。我试图保持y轴尺寸固定,因为数据是标准化的。我希望在y = 0.25和y = 2.5的情况下为绘图添加可接受的y值max和min行,或者在该范围之外的绘图背景的不同阴影。

我得到了一个图表,但是当我点击该标签时,它被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

1 个答案:

答案 0 :(得分:0)

在Excel 2016 for Windows中,您的代码似乎对我很好。但是,在某些版本的Excel中,如果图表中没有数据,则无法对图表标题和图例以及其他元素进行太多操作。创建图表后立即添加数据(即SetSourceData),然后处理所有格式。