需要使用vbamacros循环在excel中创build一组graphics

我试图做一个macros,将通过Excel工作表,并通过一组行,并为每一行做一个graphics。

我已经得到了一些我需要的代码,但是当我需要为每一行分别绘制一个图时,将它们全部放在一张图上。

`Dim i As Integer Dim ws As Worksheet Set ws = Sheets("Master Sheet") For Row = 1 To 20 Dim my_cell Dim rng As Range Set rng = Sheets("Master Sheet").Range("J8:Y8") For Each my_cell In rng If my_cell <> "" Then ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range("'Master Sheet'!$J$8:$Y$8") ActiveChart.ChartType = xlLineMarkers ActiveChart.Location Where:=xlLocationAsNewSheet ActiveSheet.Activate ActiveChart.PlotArea.Select ActiveChart.SeriesCollection(1).XValues = "='Master Sheet'!$J$2:$Y$2" ActiveChart.SeriesCollection(1).Name = "=""FP""" ActiveChart.SeriesCollection.NewSeries ActiveChart.SeriesCollection(2).Name = "=""Progress""" ActiveChart.SeriesCollection(2).Values = _ "='Master Sheet'!$J$8,'Master Sheet'!$AF$8:$AH$8" ActiveChart.DisplayBlanksAs = xlInterpolated ActiveSheet.Activate ActiveChart.ChartArea.Select Else Exit For ' Blank cell found, exiting End If Next Next Row End Sub` 

如果任何人都可以帮我一把,看看我哪里出了问题,那就太好了。

不太确定你是否已经很好地构build了For NextFor Each循环。 理想情况下,您希望跨越范围并实际使用您在For Each语句中定义的值。 没有看到你的工作簿,我只是调整了一个小范围的数据来模拟创build一个graphics。

我只是采取了相同的代码,并在同一个工作表上为每一行数字生成一个图表。 你可以采取这些原则,并将其应用于你的逻辑。

 Sub test() Dim Row As Integer Dim ws As Worksheet Dim rng As Range Set ws = Sheets("Sheet1") 'Change this to: Set ws = Sheets("Master Sheet") For Row = 1 To 6 Set rng = ws.Range("B1:D1").Offset(Row, 0) 'Change to (I'm guessing here): ws.Range("$J$7:$Y$7").Offset(Row, 0) ActiveSheet.Shapes.AddChart.Select ActiveChart.SetSourceData Source:=Range(ws.Name & "!" & rng.Address) ActiveChart.ChartType = xlLineMarkers ActiveChart.PlotArea.Select ActiveChart.SeriesCollection(1).XValues = "='Sheet1'!$B$1:$D$1" 'Change to "='Master Sheet'!$J$2:$Y$2" ActiveChart.SeriesCollection(1).Name = ws.Range("A1").Offset(Row, 0).Value 'Change this to whatever you want to name the graphs. This is currently set to dynamicly name each graph by the series name set in Column A. 'ActiveChart.Location Where:=xlLocationAsNewSheet 'uncomment this line to put on new sheet 'ws.Select 'Need to go back to worksheet Next Row Set ws = nothing Set rng = nothing End Sub 

这里有一些可能有帮助的链接。 在for循环VBA和Excel中 创build和定位graphics VBA:制图macros将通过唯一名称组循环并创build相应的图表?

谷歌还有很多其他的链接。

如果我误解了你的问题或者需要其他的东西,请告诉我。

干杯