【问题标题】:how to move a pivot chart with vba如何使用 vba 移动数据透视图
【发布时间】:2016-07-20 05:20:43
【问题描述】:

我正在尝试创建一个在数据透视表旁边创建图表但无法使图表移动的函数 =( 显示正确的数据并且工作正常,它刚刚被创建为远离实际数据透视表。

Function chart_from_pivot(a_pivot As PivotTable) As Chart
Debug.Print 0

Dim objChart As Chart
Set objChart = Charts.Add

Debug.Print 1

objChart.SetSourceData a_pivot.TableRange1
Debug.Print 2
objChart.ChartType = xl3DColumn
Debug.Print 3
objChart.Location Where:=xlLocationAsObject, Name:=a_pivot.Parent.Name
Debug.Print 4

'HERE IS THE ISSUE!!!!
'objChart.Parent.Left = Range("D2").Left
'Debug.Print 5
'objChart.Parent.Top = Range("D2").Top
'Debug.Print 6

'objChart.ChartStyle = 294
'Debug.Print 7

chart_from_pivot = objChart

结束函数

有什么建议吗?谢谢大家。

【问题讨论】:

  • 如果留给自己,图表会转到屏幕中心,靠近电子表格中光标最后的位置。尝试先在代码中设置光标位置。

标签: excel vba pivot-table pivot-chart


【解决方案1】:

我需要使用 objchart.Location 设置 objchart,一旦我添加了集合,现在它可以工作了 =)

这是最终代码,以备将来需要。

Function chart_from_pivot(a_pivot As PivotTable) As Chart
    Dim objChart As Chart
    Set objChart = Charts.Add

    objChart.SetSourceData a_pivot.TableRange1
    objChart.ChartType = xl3DColumn
    Set objChart = objChart.Location(Where:=xlLocationAsObject, Name:=a_pivot.Parent.Name)

    objChart.ChartStyle = 294

    objChart.ChartArea.Left = ThisWorkbook.Sheets("Charts").Range("B10").Left
    objChart.ChartArea.Top = ThisWorkbook.Sheets("Charts").Range("B10").Top   
    chart_from_pivot = objChart
End Function

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-24
    相关资源
    最近更新 更多