【问题标题】:Excel Macro ScatterplotExcel 宏散点图
【发布时间】:2016-05-31 15:36:45
【问题描述】:

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

我看到了一个图表,但是当我单击该选项卡时,它会被 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

【问题讨论】:

    标签: excel vba charts macros


    【解决方案1】:

    您的代码在 Excel 2016 for Windows 中对我来说似乎运行良好。但是,在某些版本的 Excel 中,如果图表中没有数据,则无法对图表标题和图例等元素做很多事情。创建图表后立即添加数据(即SetSourceData),然后处理所有格式。

    【讨论】:

      猜你喜欢
      • 2013-04-20
      • 2017-06-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多