Chart.SetSourceData Source:=Range(RChart.Offset(-2, 0), RChart.Offset(-1, (CNum - 1))) 類似 繪圖函式的
SourceData 為什么不能是自定義的陣列 或者 Dim AllElements As Variant
還有資料透視表的函式里
ActiveWorkbook.PivotCaches.Create(SourceType:=xlDatabase, SourceData:= _
這里的SourceData 也必須是Range 不能是上述 自定義的陣列 或者 Dim AllElements As Variant
高手來指點下
uj5u.com熱心網友回復:
慚愧,被樓主喚來后,才發現自己機器上沒安裝office,以前用VBA時也沒用過這兩個方法 。有一個小建議,樓主不妨把你的問題描述再整理一下,最好配上些截圖說明,這樣對這方面問題有一定了解,但還不只很熟悉的網友,理解我的意思時就會容易很多的。
uj5u.com熱心網友回復:
我覺得這是物件自身決定的吧!
那些“圖表”物件,都是只能從作業表中取源資料的,資料源的型別自然就要求為“Range”型別的物件。
如果你要用變數,如果變數(變數型別是Range或Variant)的“值”是符合要求的Range物件,應該是可以的吧!
如果引數值是簡單的陣列,肯定就不行了。
uj5u.com熱心網友回復:
你再 SetSourceData 上右鍵選單\定義,就可以看到Sub SetSourceData(Source As Range, [PlotBy])
引數 Source 的型別就是 Range 啊!清清楚楚的有什么問題!
uj5u.com熱心網友回復:
版主 代碼如下
Range("A1").Value = 10
Range("B1").Value = 4
Range("C1").Value = 5
Set RChart = Range("H5")
ActiveSheet.Shapes.AddChart(xlPie, (RChart.Left + RChart.Width / 2), RChart.Top, (RChart.Width * 3), (RChart.Height * 10)).Select
ActiveChart.SetSourceData Source:=Range("$A$1:$C$1") //問題就在這里 我必須事先設定 這三個Range的值 見前面的代碼 貌似 這里的引數必須是range 其實 只需要一個三個 成員的integer 陣列 就可以 有無其他方式 直接使用值(10,4,5)傳入 這個繪圖函式,而不必折騰 三個range出來
ActiveChart.SeriesCollection(1).XValues = "={""初級"",""中級"",""高級""}"
ActiveChart.SeriesCollection(1).Name = "=""人員能力分布"""
ActiveChart.SeriesCollection(1).Select
ActiveChart.SeriesCollection(1).ApplyDataLabels
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.NameComplexScript = "微軟雅黑"
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.NameFarEast = "微軟雅黑"
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.Name = "微軟雅黑"
ActiveChart.ChartTitle.Format.TextFrame2.TextRange.Font.Size = 10
uj5u.com熱心網友回復:
已經說得很清楚了:資料源必須是Range物件!
uj5u.com熱心網友回復:
不能,必須先有Range(填充好的Cell)。所謂的資料源就是外部存放的資料,Excel 的圖表自己是不保存資料的,需要顯示時取資料源的資料再畫出圖形。
如果沒有填充好的Cell,假使支持其它比如陣列之類的資料源;那么保存檔案,下次再打開,畫圖表的時候該到哪里取數?
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/81848.html
標籤:VBA
上一篇:各位大神救救我
