用于创建图表的VBA宏可以在一个excel电子表格上工作,但不能在另一个excel电子表格上工作
嗨,我的代码有问题。出于某种原因,它在一个文档上工作正常,但在另一个文档上却不工作。下面是我的代码:用于创建图表的VBA宏可以在一个excel电子表格上工作,但不能在另一个excel电子表格上工作,excel,vba,Excel,Vba,嗨,我的代码有问题。出于某种原因,它在一个文档上工作正常,但在另一个文档上却不工作。下面是我的代码: Sub Graph2() ' Graphs for monitoring Dim my_range As Range, t, co As Shape '<edit t = Selection.Cells(1, 1).Value & " - " & ActiveSheet.Name Dim OldSheet As Worksheet
Sub Graph2()
' Graphs for monitoring
Dim my_range As Range, t, co As Shape '<edit
t = Selection.Cells(1, 1).Value & " - " & ActiveSheet.Name
Dim OldSheet As Worksheet
Set OldSheet = ActiveSheet
Set my_range = Union(Selection, ActiveSheet.Range("A:A"))
Set co = ActiveSheet.Shapes.AddChart2(201, xlLine) 'add a ChartObject
With co.Chart
.FullSeriesCollection(1).ChartType = xlXYScatter
.FullSeriesCollection(1).AxisGroup = 1
.FullSeriesCollection(2).ChartType = xlLine
.FullSeriesCollection(2).AxisGroup = 1
.SetSourceData Source:=my_range
'highlight final dot of data
.FullSeriesCollection(1).Points(.FullSeriesCollection(1).Points.Count - 1).ApplyDataLabels Type:=xlShowValue
.HasTitle = True
.ChartTitle.Text = t
'ResolveSeriesnames co.Chart
.Location Where:=xlLocationAsObject, Name:="Graphs"
End With
OldSheet.Activate
End Sub
子图2()
"监测图表"
将我的_范围变暗为范围,t、co变暗为形状‘这两张纸有什么不同?当您将图表添加到工作表时,它通常会从所选单元格中提取数据-可能值得检查添加图表时所选的内容。我建议您对工作表的声明进行排序。可以肯定地说,每次使用ActiveSheet
都是一个风险因素,99%的Select
或Activate
都没有合法的用途。在你的代码中,不要这样做Union(Selection,ActiveSheet.Range(“A:A”))
正在自找麻烦。我想如果你对这些语法和逻辑问题进行分类,你的代码很可能会像你期望的那样工作。你能给我一些提示,让我找到正确的方向吗@Variatus@TimWilliams当我手动选择要绘制图表的列时,出于某种原因,在非工作文档上,它会取消选择我选择的第一列-因此,为什么我会丢失一系列数据如果您使用F8单步遍历代码,选择在什么时候更改?