【问题标题】:How to add the chart to specific cell with VBA Macro如何使用 VBA 宏将图表添加到特定单元格
【发布时间】:2016-02-29 10:48:54
【问题描述】:

我想将使用 VBA 创建的图表定位到特定的单元格位置。这是我的代码

Private Sub CommandButton1_Click()
ActiveSheet.Shapes.AddChart.Select
ActiveChart.SetSourceData Source:=Range("'Chart'!$A$1:$L$2")
ActiveChart.ChartType = xlLineMarkers
Dim cht As Chart
Dim ser As Series
Set cht = ActiveChart
Set ser = cht.SeriesCollection(1)
ser.Format.Line.Visible = msoFalse
ser.Format.Line.Visible = msoTrue
ser.Format.Line.ForeColor.RGB = RGB(26, 46, 74)
ser.Format.Fill.ForeColor.RGB = RGB(26, 46, 74)
With Worksheets("Chart").ChartObjects(1).Chart
.HasTitle = True
.ChartTitle.Text = Sheets("Chart").Range("B4")
End With
Dim Srs As Series
Set Srs = ActiveChart.SeriesCollection(1)
Srs.Name = "Desired Name"
Dim ChartObj As Object
For Each ChartObj In Sheets("Chart").ChartObjects
ChartObj.Chart.Location xlLocationAsObject, "Factsheet"
Next ChartObj
End Sub

请问有什么办法可以解决这个问题吗?

【问题讨论】:

    标签: excel vba charts macros


    【解决方案1】:

    如果您使用ChartObjects.Add(Left, Top, Width, Height) 方法。它允许您以点为单位指定图表位置。

    例如:

    Private Sub CommandButton1_Click()
       Dim cht As ChartObject
       Dim ser As Series
       Set cht = ActiveSheet.ChartObjects.Add(20, 20, 400, 150)
       With cht.Chart
        .ChartType = xlLineMarkers
        .HasTitle = True
        .ChartTitle.Text = Worksheets("Chart").Range("B4")
        .SetSourceData Source:=Worksheets("Chart").Range("$A$1:$L$2")
       End With
       Set ser = cht.Chart.SeriesCollection(1)
       With ser.Format
        .Line.Visible = msoTrue
        .Line.ForeColor.RGB = RGB(26, 46, 74)
        .Fill.ForeColor.RGB = RGB(26, 46, 74)
      End With
    End Sub
    

    详情请见下文: https://msdn.microsoft.com/en-gb/library/office/ff197613.aspx

    【讨论】:

    • 20,20.150 是什么?我怎么能用我的代码来实现呢?
    • 我已经用一个工作示例更新了我的答案,该示例清楚地演示了 ChartObjects.Add(Left, Top, Width, Height) 方法。
    猜你喜欢
    • 2016-02-28
    • 1970-01-01
    • 1970-01-01
    • 2023-02-13
    • 2022-10-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多