excel - 在用户表单中选择图表

标签 excel charts vba

我正在编写一个宏,它可以从一个图表复制格式并将其应用于多个其他图表。

我正在努力做的是确定一种方法来允许用户设置模板图表,然后选择多个其他图表。如果用户知道图表名称,则可以使用组合框来完成此操作,但我尝试在用户不知道图表名称的情况下执行此操作。

因此,我正在考虑创建一个用户对话框,用户可以在其中选择基本图表,然后选择要应用格式的图表。就像范围的 refedit 一样。但是我无法弄清楚如何从用户表单中引用图表。

这可以做到吗?如果可以,如何做到?

最佳答案

以下是您入门的内容。

在用户窗体上放置两个组合框和两个图像控件。

enter image description here

假设您的工作表如下所示

enter image description here

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

所以当你运行表单时,它看起来像这样

enter image description here

在组合框的单击事件中,使用 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

这就是表单的外观。

从这里开始,您就拥有了图表的名称。只需使用它们即可随心所欲地工作。

希望这有帮助。

enter image description here

关于excel - 在用户表单中选择图表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25521950/

相关文章:

php - mysql图表上个月每小时的平均订单数

regex - VBA:Regex 和 Dir() 函数问题

r - 在 excel 文件中写入数据框列表

Excel 2016 升级导致内存崩溃

excel - 如何使用 VBA 在 Excel 工作表上排列图表?

php - 在 PHP 中按天获取总销售额

excel - 用于根据查询表中的单元格值将整行设为粗体的 VBA 代码

excel - 使用变量作为应用程序名称

vba - excel宏cells.find由于某种原因不会使用变量

excel - Excel 2007 中基于 "good"中心值/绝对值的色标格式