我是vba的新手,我正试图在excel页面上定位vba图表。下面是代码。如果我更换:
Set c = c.Location(Where:=xlLocationAsObject, Name:=chLoc.Parent.Name)
带
Set c = c.Location(Where:=xlLocationAsObject, Name:="Sheet1")
然后代码工作。否则我明白了 '错误1004方法'范围'对象'_Worksheet失败' 并且错误发生在行上:
Set chLoc = sh2.Range(sh2.[a1:g10])
这是代码 - 谢谢,如果你有很好的vba图表资源,我会很感激任何方向:
Sub Chart()
Dim sh1 As Worksheet
Dim sh2 As Worksheet
Dim xaxis As Range
Dim yaxis As Range
Set sh1 = ActiveWorkbook.Sheets("Spon Email Performance Graph")
Set sh2 = ActiveWorkbook.Sheets("Graphs")
Set xaxis = sh1.Range(sh1.[b15], sh1.[b15].End(xlDown))
Set yaxis = sh1.Range(sh1.[g15], sh1.[g15].End(xlDown))
Dim chLoc As Range
Set chLoc = sh2.Range(sh2.[a1:g10])
' Worksheets("Graphs").ChartObjects.Delete
Dim c As Chart
Set c = Charts.Add
Set c = c.Location(Where:=xlLocationAsObject, Name:=chLoc.Parent.Name)
With c
.ChartType = xlColumnClustered
' set other chart properties
End With
Dim s As Series
Set s = c.SeriesCollection.NewSeries
With s
.Values = yaxis
.XValues = xaxis
' set other series properties
End With
End Sub
答案 0 :(得分:1)
您正在混淆Chart
和ChartObject
。这里有一个示例代码,展示了如何处理这两个对象:
Dim left As Integer, top As Integer, width As Integer, height As Integer
left = 10
top = 10
width = 10
height = 10
Dim co As ChartObject
Dim c As Chart
Set co = sh1.ChartObjects.Add(left, top, width, height)
Set c = co.Chart
With c
.ChartType = xlColumnClustered
End With