1

我是 vba 新手,正在尝试在 excel 页面上放置 vba 图表。下面是代码。如果我更换:

Set c = c.Location(Where:=xlLocationAsObject, Name:=chLoc.Parent.Name)

Set c = c.Location(Where:=xlLocationAsObject, Name:="Sheet1")

然后代码工作。否则我得到'错误1004方法'范围'对象'_Worksheet failed'并且错误在线发生:

   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
4

1 回答 1

3

你正在混淆ChartChartObject。这里有一个示例代码,展示了如何处理这两个对象:

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
于 2013-08-18T08:35:43.743 回答