我有工作问题。我有一个包含大量信息的数据报告,我需要创建 3 个折线图来表示一段时间内的 3 个不同值。时间也在报告中,并且对于所有值都是相同的时间。我在其他地方的论坛中找不到特定于我的解决方案。
数据报告的长度、行数各不相同。我需要做的是创建 3 个折线图并将它们水平放置,在报告末尾下方几行。其中两张图各有一个系列,第三张图有两个系列。
这是图表需要包含的内容:
图 1:随时间变化的 RPM
图 2:随时间变化的压力
图 3:随时间变化的逐步消耗和需求消耗
由于最近工作中的职位变化,我刚刚进入 VBA,我对此知之甚少,但我花了很多时间弄清楚如何为同一份报告编写其他宏。由于我对工作簿的口头表述不清楚,因此我附上了数据报告样本的链接以供查看。
这是我到目前为止所拥有的。它适用于第一个图表。现在我可以在代码中输入什么来命名图表“RPM”并将系列命名为“RPM”?
Sub Test()
Dim LastRow As Long
Dim Rng1 As Range
Dim ShName As String
With ActiveSheet
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("B2:B" & LastRow & ", E2:E" & LastRow)
ShName = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.SetSourceData Source:=Rng1
.Location Where:=xlLocationAsObject, Name:=ShName
End With
End Sub
我已经想出了如何通过 VBA 输入图表名称。代码现在如下所示:
Sub Test()
Dim LastRow As Long
Dim Rng1 As Range
Dim ShName As String
With ActiveSheet
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("B2:B" & LastRow & ", E2:E" & LastRow)
ShName = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.HasTitle = True
.ChartTitle.Text = "RPM"
.SetSourceData Source:=Rng1
.Location Where:=xlLocationAsObject, Name:=ShName
End With
End Sub
接下来我将处理系列标题,然后将图表置于报告数据之下。欢迎提出建议和意见。
下面更新的代码分别创建 rpm 图表和压力图表。最后一张图表需要两个系列,我现在正在努力。
Sub chts()
'RPM chart-------------------------------------
Dim LastRow As Long
Dim Rng1 As Range
Dim ShName As String
With ActiveSheet
LastRow = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng1 = .Range("B2:B" & LastRow & ", E2:E" & LastRow)
ShName = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.HasTitle = True
.ChartTitle.Text = "RPM"
.SetSourceData Source:=Rng1
.Location Where:=xlLocationAsObject, Name:=ShName
End With
With ActiveChart.SeriesCollection(1)
.Name = "RPM"
End With
' Pressure chart --------------------------------
Dim LastRow2 As Long
Dim Rng2 As Range
Dim ShName2 As String
With ActiveSheet
LastRow2 = .Range("B" & .Rows.Count).End(xlUp).Row
Set Rng2 = .Range("B2:B" & LastRow2 & ", G2:G" & LastRow2)
ShName2 = .Name
End With
Charts.Add
With ActiveChart
.ChartType = xlLine
.HasTitle = True
.ChartTitle.Text = "Pressure/psi"
.SetSourceData Source:=Rng2
.Location Where:=xlLocationAsObject, Name:=ShName2
End With
With ActiveChart.SeriesCollection(1)
.Name = "Pressure"
End With
End Sub
大卫,我很想知道您的代码如何与我的工作表一起使用,但我不确定如何修复语法错误。