如何讓圖形填充特定範圍?前一段時間,我發現如何使用VBA來做到這一點,但是我不能爲了我的生活找出如何再做一次。我想要一個圖表來填充特定的範圍,如F1到K8。這樣,如果左側的其他列由於用戶輸入而發生更改,圖形仍然保持在該範圍內,使所有內容都看起來不錯。如何讓圖形填充特定範圍?另外,如何使用VBA更改圖形中標記的大小?
我的第二個問題是,如何使用VBA更改Excel圖表上標記的大小?我繪製了數千個數據點,默認標記是巨大的鑽石,所以圖形看起來很可笑,其中有成千上萬個。這條線就是這件令人難以置信的事情。
還有一個額外的獎勵問題!我使用VBA製作整個圖表。我正在製作兩個系列。但是,插入兩個系列時,它會添加第三個系列,其中沒有數據點。如果它沒有出現在圖例中,它不會令人討厭。我如何刪除一個系列?
謝謝!這是相關的代碼。 Counter和NewTracker是基於用戶輸入的變量。對於我正在使用的數據,我相信Counter = 13和NewTracker = 1202,但我不認爲這是基於我的問題!如果你喜歡使用一個例子,只需用更好的東西替換範圍。 :)
Sub Makingthechart()
ActiveSheet.Shapes.AddChart.Select
ActiveChart.ChartType = xlXYScatter
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(1).Name = "=Sheet1!$B$1"
ActiveChart.SeriesCollection(1).XValues = "=Sheet1!$A$2:$A$" & Counter + 1
ActiveChart.SeriesCollection(1).Values = "=Sheet1!$B$2:$B$" & Counter + 1
ActiveChart.SeriesCollection.NewSeries
ActiveChart.SeriesCollection(2).Name = "CFL Calculated"
ActiveChart.SeriesCollection(2).XValues = "=Sheet1!$XFB$1:$XFB$" & NewTracker
ActiveChart.SeriesCollection(2).Values = "=Sheet1!$XFC$1:$XFC$" & NewTracker
With ActiveWorkbook.ActiveChart
.HasTitle = True
.ChartTitle.Characters.Text = "CFL Over Time"
.Axes(xlCategory, xlPrimary).HasTitle = True
.Axes(xlCategory, xlPrimary).AxisTitle.Characters.Text = "Time (Days)"
.Axes(xlValue, xlPrimary).HasTitle = True
.Axes(xlValue, xlPrimary).AxisTitle.Characters.Text = "CFL"
.Axes(xlCategory).HasMajorGridlines = True
.Axes(xlCategory).HasMinorGridlines = True
End With
End Sub
我非常感謝您的幫助!你們是我迄今爲止在我的實習中一直非常成功的原因!我無法相信你們都知道我無法通過谷歌找到的關於VBA的所有這些微小的事情。
'ChartObject'具有'Top'和'Left'屬性,您可以將它們設置爲單元格F1的頂部和左側。然後將「寬度」和「高度」設置爲要繪製的範圍的寬度和高度。 –
我想相信,但我找不到這方面的證據。我覺得我應該可以像**一樣使用ActiveChart,.Left = Cells(something)**,但我找不到像這樣的東西。 – TheTreeMan
在工作表上,圖表託管在一個「ChartObject」中,因此它是您需要設置其頂部和左側的這個對象。您不能設置圖表本身的位置,只能是容器。 –