Excel VBA代码,它遍历多个列并构建它们的图表
对于以下情况,我需要一个示例代码:Excel VBA代码,它遍历多个列并构建它们的图表,excel,vba,Excel,Vba,对于以下情况,我需要一个示例代码: 我的工作簿中有多张包含数据列的工作表 工作表如下所示: X1 Y1 X2 Y2 ... 2 100 2 101 3 110 3 108 4 115 5 114 5 116 6 117 6 120 7 121 每个工作表都有相同的数据标题(在本例中为X1和Y1等) 每个工作表只包含每个数据列标题中的一个(Y2找不到两次 来自当前工作表) 我需要一个VBA代码,通过给定的数据列标题查找所有数据列,并将所有这些数据列的图形绘制到散点图中,
X1 Y1 X2 Y2 ...
2 100 2 101
3 110 3 108
4 115 5 114
5 116 6 117
6 120 7 121
X1 Y1
2 100
3 110
4 115
5 116
6 120
这一个会在同一个散点图上创建另一个图形
X2 Y2
2 101
3 108
5 114
6 117
7 121
所以所有的数据图都有单独的x轴值
我的主要问题是,由于某种原因,我无法找到如何制作散点图
使用VBA。找到我可以使用的正确数据列
例如,答案是某种子程序,将给定范围内的新线添加到给定散点图中
End Sub您的问题相当广泛,但在您的评论中,您会更具体地问“如何创建散点图,我可以稍后通过其名称来参考。” 据我所知,在Excel中为图表命名的过程有点笨拙。我发现的唯一方法是通过单击图表激活图表,然后进入VBA编辑器的即时窗口,并键入:
ActiveChart.Parent.Name = "My scatter plot" ' or whatever name
然后,假设您没有删除图表,您可以在代码中引用它,如下所示:
Dim cho As chartObject
Dim cht As Chart
Set cho = Sheet1.ChartObjects("My scatter plot")
Set cht = cho.Chart
Dim ser As Series
Set ser = cht.SeriesCollection.NewSeries
With ser
'example settings:
.ChartType = xlXYScatter
.XValues = Range("A2:A6")
.Values = Range("B2:B6")
.Name = Range("B1").Value
.MarkerStyle = xlMarkerStyleNone
'can also format the line style, color, weight, etc. etc.
End With
这是假设它位于表1
上。适当调整。然后,您可以向其中添加系列,如下所示:
Dim cho As chartObject
Dim cht As Chart
Set cho = Sheet1.ChartObjects("My scatter plot")
Set cht = cho.Chart
Dim ser As Series
Set ser = cht.SeriesCollection.NewSeries
With ser
'example settings:
.ChartType = xlXYScatter
.XValues = Range("A2:A6")
.Values = Range("B2:B6")
.Name = Range("B1").Value
.MarkerStyle = xlMarkerStyleNone
'can also format the line style, color, weight, etc. etc.
End With
有关
图表
和图表对象
对象的更多详细信息,请查看 您的问题相当广泛,但在您的评论中,您更具体地提出了“如何创建散点图,稍后我可以通过其名称来参考。”
据我所知,在Excel中为图表命名的过程有点笨拙。我发现的唯一方法是通过单击图表激活图表,然后进入VBA编辑器的即时窗口,并键入:
ActiveChart.Parent.Name = "My scatter plot" ' or whatever name
然后,假设您没有删除图表,您可以在代码中引用它,如下所示:
Dim cho As chartObject
Dim cht As Chart
Set cho = Sheet1.ChartObjects("My scatter plot")
Set cht = cho.Chart
Dim ser As Series
Set ser = cht.SeriesCollection.NewSeries
With ser
'example settings:
.ChartType = xlXYScatter
.XValues = Range("A2:A6")
.Values = Range("B2:B6")
.Name = Range("B1").Value
.MarkerStyle = xlMarkerStyleNone
'can also format the line style, color, weight, etc. etc.
End With
这是假设它位于表1
上。适当调整。然后,您可以向其中添加系列,如下所示:
Dim cho As chartObject
Dim cht As Chart
Set cho = Sheet1.ChartObjects("My scatter plot")
Set cht = cho.Chart
Dim ser As Series
Set ser = cht.SeriesCollection.NewSeries
With ser
'example settings:
.ChartType = xlXYScatter
.XValues = Range("A2:A6")
.Values = Range("B2:B6")
.Name = Range("B1").Value
.MarkerStyle = xlMarkerStyleNone
'can also format the line style, color, weight, etc. etc.
End With
有关
图表
和图表对象
对象的更多详细信息,请查看 我用目前为止我掌握的代码更新了我的帖子。我试着用一个宏记录器来获取一些代码,但没有成功。我似乎不明白如何创建一个散点图,我可以在以后通过它的名字来参考它。我用我目前为止的代码更新了我的帖子。我试着用一个宏记录器来获取一些代码,但没有成功。我似乎不明白如何创建一个散点图,我可以在后面以它的名称为例参考。谢谢你的回答。我承认我的问题相当广泛。然而你的答案正是我想要的。这真的救了我一天谢谢你的回答。我承认我的问题相当广泛。然而你的答案正是我想要的。这真的救了我一天