![](/img/trans.png)
[英]Select data range for a chart from different sheet using VBA (EXCEL)
[英]excel vba chart on a different sheet using that sheet's data
我有一個程序,可以創建一個新工作表,將數據添加到該工作表中,最后要做的是繪制輸出的圖表。 當我嘗試下面的代碼時,我得到“對象或變量或未設置塊變量”
請讓我知道我要去哪里了。 謝謝。
Dim ws As Worksheet
For Each ws In ActiveWorkbook.Worksheets
ws.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("J2", Sheets(ws.Name).Range("L2").End(xlDown).Address)
ActiveChart.ChartType = xlLine
With ActiveChart.Parent
.Height = 400
.Width = 800
End With
Next
您使用逗號來創建帶字符串的范圍。 僅適用於范圍對象。 試試: ActiveChart.SetSourceData Source:=ws.Range("J2:" & ws.Range("L2").End((xlDown).Address)
With ws.ChartObjects.Add(Left:=100, Width:=375, Top:=75, Height:=225)
.Chart.SetSourceData Source:=ws.Range("J2", Sheets(ws.Name).Range("L2").End(xlDown).Address)
.Chart.ChartType = xlLine
End With
vba中的許多對象訪問器都返回變量。 如果遇到此問題,例如chart.parent //返回變量btw,首先要嘗試的是將其分配給類型變量。在運行時,如果將variant視為好像是另一種類型,則幾乎可以肯定會得到一個運行時錯誤。
dim ws As Worksheet
set ws = ActiveChart.Parent
With ws
'ws operations here
.Name = "My worksheet!"
.Cells(1,1).Value = "cell A1"
End With
同樣值得注意的是,Workbook.Worksheets集合還包含圖表對象http://msdn.microsoft.com/zh-cn/library/microsoft.office.tools.excel.workbook.worksheets.aspx
因此,當您向工作表中添加圖表時,實際上是在對不建議使用的集合中進行迭代。
更改為此:
ActiveChart.SetSourceData源:= Range(Sheets(ws.Name).Range(“ J2”),Sheets(ws.Name).Range(“ L2”)。End(xlDown))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.