簡體   English   中英

使用該工作表的數據在另一工作表上的Excel VBA圖表

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM