我需要减少散点图的大小,以允许-90标签,并在VBA中添加错误栏



我创建了一个Excel 2016 VBA散点图(没有图例的单独工作表(,并用VBA标记了这些点。源标签为A1:A3(事件(35个字符(/日期/Y点(,数据为A2:C17。我的标签(方向-90(覆盖Y点并聚集在一起,因为Y轴绘图区域占据了整个工作表。我尝试过不同的Y轴值,但打印区域会扩展以填充工作表。我还尝试过用VBA更改打印大小。我需要实际图表上方的标签。

次要的问题是我无法绘制日期&时间,只是一个日期,并且在创建具有xlMinusValues 100%和SeriesCollection(1(的误差条时遇到问题。

为了方便使用,我一直在单独的模块中进行此操作,但将组合或使用Call。我发现我无法构建超过16条数据记录的图表,所以如果存在更多记录,我将使用循环例程。

时间线模块

Option Explicit
Sub Timeline()
Dim sCount As Long
Dim labelrotation As Long
Dim TimelineChart As Chart
Dim LastCell As Long
Dim rng As Range
Dim rngAddr As String
Dim ChartRange As String
With ActiveSheet
Range("C1").End(xlDown).Activate
Set rng = ActiveCell
rngAddr = rng.Address(0, 0)
End With
Let ChartRange = "B2:" & rngAddr
Set TimelineChart = Charts.Add
TimelineChart.Name = "TimelineChart"
With TimelineChart
.SetSourceData Sheets("TimelineData").Range(ChartRange)
.ChartType = xlXYScatter
.Legend.LegendEntries(1).Delete
TimelineChart.HasAxis(xlSecondary) = False
End With
End Sub

标签模块

Option Explicit
Sub Labels()
Dim r As Range
Dim Events As Range
Dim EventCounter As Integer
Dim s As Series
Sheets("TimelineData").Select
Set Events = Range("A2", Range("A1").End(xlDown))
Set s = Chart1.SeriesCollection(1)
s.HasDataLabels = True
For Each r In Events
EventCounter = EventCounter + 1
s.Points(EventCounter).DataLabel.Text = r.Value
s.Points(EventCounter).DataLabel.Position = xlLabelPositionAbove
s.Points(EventCounter).DataLabel.Orientation = 45
Next r
End Sub

我要撤回这个问题。散点图位于图表表上,而与使用数据的表位于同一工作表中。花了很多时间得出结论,我应该用条形图,同样的工作表,修改一下。

感谢所有看起来和考虑过的回应。

最新更新