Vba 在VB中创建动态图表宏

Vba 在VB中创建动态图表宏,vba,excel,excel-2010,excel-2007,Vba,Excel,Excel 2010,Excel 2007,目前,我正在尝试设计一个宏,它允许我从多个工作表中选择数据,并基于拾取的值,将它们相互对应地绘制图表。保存该值的单元格在其他所有工作表中都是相同的 我写下了一些关于如何实现这一点的伪尝试: Function WorksheetExists(ByVal WorksheetName As String) As Boolean Dim Sht As Worksheet Dim Value = "B20" 'The value to chart will be B20 across every char

目前,我正在尝试设计一个宏,它允许我从多个工作表中选择数据,并基于拾取的值,将它们相互对应地绘制图表。保存该值的单元格在其他所有工作表中都是相同的

我写下了一些关于如何实现这一点的伪尝试:

Function WorksheetExists(ByVal WorksheetName As String) As Boolean
Dim Sht As Worksheet
Dim Value = "B20" 'The value to chart will be B20 across every chart'
For each Sheet in ThisWorkbook.Worksheets
'This is where I would start referencing the B20 fields and comparing them'

End Function

谢谢

下面的代码使用了另一种方法,它不是从不同的工作表中选择多个单元格,而是将每个工作表中的单元格内容复制到另一个称为“图形”的工作表中,并选择该范围作为图形源。代码假定“图形”工作表是工作簿的第一张工作表。这可能不是你问题的完美答案,但是你可以做一些修改来实现你的目标

Sub GraphAdd()

Dim sourceRng As Range
Dim sht As Worksheet
Dim graphSht As Worksheet
Dim wb As Workbook
Dim lastRow As Long

Set wb = ActiveWorkbook
Set graphSht = wb.Worksheets("Graph") '<-- Sheet name where you want to draw the chart

i = 1
For Each sht In ActiveWorkbook.Sheets
    graphSht.Cells(i, 1).Value = sht.Range("B20").Value
    i = i + 1
Next

lastRow = graphSht.Range("A" & graphSht.Rows.Count).End(xlUp).Row

    graphSht.Shapes.AddChart.Select
    ActiveChart.ChartType = xlColumnClustered
    ActiveChart.SetSourceData Source:=graphSht.Range("A2:A" & lastRow)

End Sub
子图()
Dim sourceRng As范围
将sht变暗为工作表
Dim graphSht作为工作表
将wb设置为工作簿
最后一排一样长
设置wb=ActiveWorkbook

设置graphSht=wb.Worksheets(“Graph”)’,但是当它到达需要开始引用每个单独工作表中的B20字段的点时,我就卡住了。任何帮助都将不胜感激!谢谢谢谢,我会试一试,让你知道我的进展:)!