我正在编写一个宏,它可以从一个图表复制格式并将其应用于多个其他图表。
我正在努力做的是确定一种方法来允许用户设置模板图表,然后选择多个其他图表。如果用户知道图表名称,则可以使用组合框来完成此操作,但我尝试在用户不知道图表名称的情况下执行此操作。
因此,我正在考虑创建一个用户对话框,用户可以在其中选择基本图表,然后选择要应用格式的图表。就像范围的 refedit
一样。但是我无法弄清楚如何从用户表单中引用图表。
这可以做到吗?如果可以,如何做到?
最佳答案
以下是您入门的内容。
在用户窗体上放置两个组合框和两个图像控件。
假设您的工作表如下所示
在 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
所以当你运行表单时,它看起来像这样
在组合框的单击事件中,使用 HERE 中的 Stephen Bullen 的 PastePicture 代码在用户窗体中显示图表。例如
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
这就是表单的外观。
从这里开始,您就拥有了图表的名称。只需使用它们即可随心所欲地工作。
希望这有帮助。
关于excel - 在用户表单中选择图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25521950/