我正在尝试定义一个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
答案 0 :(得分:0)
在Excel 2016 for Windows中,您的代码似乎对我很好。但是,在某些版本的Excel中,如果图表中没有数据,则无法对图表标题和图例以及其他元素进行太多操作。创建图表后立即添加数据(即SetSourceData
),然后处理所有格式。