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等)

  • 每个工作表只包含每个数据列标题中的一个(Y2找不到两次 来自当前工作表)
  • 我需要一个VBA代码,通过给定的数据列标题查找所有数据列,并将所有这些数据列的图形绘制到散点图中,并使用当前图纸名称命名绘制的线

    以下数据将创建一个散点图

       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
    

    有关
    图表
    图表对象
    对象的更多详细信息,请查看

    我用目前为止我掌握的代码更新了我的帖子。我试着用一个宏记录器来获取一些代码,但没有成功。我似乎不明白如何创建一个散点图,我可以在以后通过它的名字来参考它。我用我目前为止的代码更新了我的帖子。我试着用一个宏记录器来获取一些代码,但没有成功。我似乎不明白如何创建一个散点图,我可以在后面以它的名称为例参考。谢谢你的回答。我承认我的问题相当广泛。然而你的答案正是我想要的。这真的救了我一天谢谢你的回答。我承认我的问题相当广泛。然而你的答案正是我想要的。这真的救了我一天