我正在寻找编写一个宏,它从一个图表复制格式并将其应用到多个其他图表。
我正在努力做的是确定一种方法来允许用户设置模板图表,然后选择多个其他图表。如果用户知道图表名称,则可以使用组合框来完成此操作,但我尝试在用户不知道图表名称的情况下执行此操作。
因此,我正在考虑有一个用户对话框,用户可以在其中选择基本图表,然后选择要应用格式的图表。就像refedit
为一个范围。但是我无法弄清楚如何从用户表单中引用图表。
这可以做到吗?如果可以,如何做到?
以下是您入门的内容。
在用户窗体上放置两个组合框和两个图像控件。
假设您的工作表如下所示
In the UserForm_Initialize()
事件填充两个组合框中的图表名称。例如
Dim ws As Worksheet
'~~> Prepare your form
Private Sub UserForm_Initialize()
Set ws = ThisWorkbook.Sheets("Sheet1")
Dim ChartObj As ChartObject
For Each ChartObj In ActiveSheet.ChartObjects
ComboBox1.AddItem ChartObj.Name
ComboBox2.AddItem ChartObj.Name
Next ChartObj
End Sub
所以当你运行表单时,它看起来像这样
在组合框的单击事件中,使用来自 Stephen Bullen 的 PastePicture 代码HERE https://stackoverflow.com/questions/10782394/pop-up-the-excel-statusbar/10787496#10787496在用户窗体中显示图表。例如
Private Sub ComboBox1_Click()
ws.Shapes(ComboBox1.Value).CopyPicture
Set Me.Image1.Picture = PastePicture(xlPicture)
End Sub
Private Sub ComboBox2_Click()
ws.Shapes(ComboBox2.Value).CopyPicture
Set Me.Image2.Picture = PastePicture(xlPicture)
End Sub
这就是表格的外观。
从那时起,现在您就有了图表的名称。只需使用它们即可随心所欲地工作。
希望这可以帮助。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)