vba 将图例移至指定位置
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了vba 将图例移至指定位置相关的知识,希望对你有一定的参考价值。
excel一般生成图例位置在是下部,上部等位置,现在想将图例放在图表的右上角,尝试用录制宏的方法,但是不能复现,希望vba高手指点一下。
在sheet1中建立数据源,就是你需要的数据内容打开vba开发环境,建立一个方法,代码如图
运行代码,可以直接点击开发环境的绿色三角,也可以建立一个按钮,之后call这个方法 参考技术A 在sheet1中建立数据源,就是你需要的数据内容
打开vba开发环境,建立一个方法,代码如图
运行代码,可以直接点击开发环境的绿色三角,也可以建立一个按钮,之后call这个方法追问
没看到代码,生成图表没问题,就是图例的位置无法放至指定的位置,每次生成图表都是在默认位置。
本回答被提问者采纳使用 VBA 编辑图例
【中文标题】使用 VBA 编辑图例【英文标题】:Edit legend using VBA 【发布时间】:2020-07-03 19:35:50 【问题描述】:我将图表(我在 excel 中准备的带有图例的图表)从 excel 复制到 .ppt(下面的代码)。如何更改/编辑 legend.Top 和 legend.size?
我的代码不工作...
Sub pptfromexcel()
Dim pptapp As PowerPoint.Application
Dim pptppt As PowerPoint.Presentation
Dim pptsld As PowerPoint.Slide
Dim shp As Object
Set chart1 = ActiveSheet.ChartObjects("Chart 1")
'Dane do wykresów
Set d5 = Sheets("Wykresy").Range("Q32:S40")
Set d6 = Sheets("Wykresy").Range("Q47:S51")
Set v1PK = Sheets("Wykresy").Range("G7:G7")
Set v1PM = Sheets("Wykresy").Range("G8:G8")
Set pptapp = New PowerPoint.Application
Set pptppt = pptapp.Presentations.Open("C:\Users\Desktop\ppt.pptx")
pptapp.Visible = True
pptapp.Activate
Set pptsld2 = pptppt.Slides(2)
chart1.Copy
Set chart1a = pptsld2.Shapes.PasteSpecial
With chart1a
.Height = 132
.Width = 157
.Left = 26.1
.Top = 120
.haslegend=true
.legend.size = 12
.legend.top = 150
End With
End Sub
【问题讨论】:
当你说你的代码不工作时——它在哪里停止工作,它给出了什么信息?阅读How to Ask。 您的模块顶部似乎没有Option Explicit
- 所以它可能是一个简单的拼写错误的变量名,导致代码停止工作。我猜chart1a
不是图表 - 所以它不会有legend
属性,如haslegend
和legend
没有大写为HasLegend
和Legend
。
【参考方案1】:
您设置的前四个属性是所有形状的通用属性。图例属性特定于图表。必须发生的第一件事是将其粘贴为 Excel 对象。如果是这种情况,您的形状上有一个 Chart 属性,您可以这样做:
With chart1a
.Height = 132
.Width = 157
.Left = 26.1
.Top = 120
.Chart.HasLegend = True
.Chart.Legend.Size = 12
.Chart.Legend.Top = 150
End With
【讨论】:
以上是关于vba 将图例移至指定位置的主要内容,如果未能解决你的问题,请参考以下文章