我已經通過其他循環查看了所有在Excel中打開的工作表,發現在stackoverflow上搜索。我對VBA很新,所以我很難理解如何操縱這些答案到我的代碼中。通過所有打開的工作表運行腳本
我想要做的是在每個活動工作表中創建一個圖表。以下是我在Sheet 1中創建圖表的代碼(可以從另一篇文章中找到並根據需要更改參數)。它創建了我想要的圖表。我不知道如何在代碼中引用當前工作表而不是工作表1,所以我知道這是我的第一個障礙。我確實找到了如何在https://support.microsoft.com/en-us/kb/142126上循環,但它僅適用於Sheet 1,因爲我不知道如何正確更改該參數。
Sub chartcreation()
Dim sh As Worksheet
Dim chrt As Chart
Set sh = ActiveWorkbook.Worksheets("Sheet1")
Set chrt = sh.Shapes.AddChart.Chart
With chrt
'Data?
.ChartType = xlXYScatterSmooth
.SeriesCollection.NewSeries
.SeriesCollection(1).Name = "=Sheet1!B1"
.SeriesCollection(1).XValues = "=Sheet1!$A$3:$A$630"
.SeriesCollection(1).Values = "=Sheet1!$B$3:$B$630"
'Titles
.HasTitle = True
.ChartTitle.Text = "=Sheet1!B1"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = Range("A2")
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = Range("B2")
'Formatting
.Axes(xlCategory).HasMinorGridlines = False
.Axes(xlValue).HasMajorGridlines = True
.Axes(xlCategory).MinimumScale = 15
.Axes(xlCategory).MaximumScale = 90
.Axes(xlValue).HasMinorGridlines = False
.Axes(xlValue).MinimumScale = 0
.Axes(xlValue).MaximumScale = 60
.HasLegend = True
End With
End Sub
什麼是你的每一個定義的活動工作?一次只能有1個活動工作表。 – Niclas
你有Sheet1中的數據嗎? – Niclas
對不起,我不清楚。我將在一個文件中放置384張表格,我想循環播放。因此,每張工作表都包含我想從中創建圖表的列A和B中的數據。如果我將腳本更改爲每個圖紙編號,我知道這會起作用,但我想知道是否循環會更簡單,因此我沒有上述腳本的384份副本。 – CorBoy