在 Excel 用户表单中显示 "live" 图表数据

Displaying "live" chart data in Excel Userform

我一直在研究在用户窗体中显示图表的模式。

普遍的共识似乎是将图表保存为 .GIF 文件,然后将其作为图像上传到用户表单中。但是,这意味着任何使用用户表单的人都必须将文件保存为图像才能查看信息。 (我不相信我的任何同事会花时间学习如何做,他们只是想快速查看图表)。

是否有一种解决方法可以在用户表单中显示图表(图表会不断被传入的数据更新)?

我尝试了多种途径,但没有找到任何东西。另外,我的 Excel 2013 似乎在工具箱中没有 Microsoft Office 图表选项,这是否已更改?

情况1:如果图表在工作表上,如下图会更简单:

Private Sub UserForm_Initialize()
    Dim Fname As String

    Call SaveChart
    Fname = ThisWorkbook.Path & "\temp1.gif"
    Me.Image1.Picture = LoadPicture(Fname)
End Sub

Private Sub SaveChart()
    Dim MyChart As Chart
    Dim Fname As String

    Set MyChart = Sheets("Data").ChartObjects(1).Chart
    Fname = ThisWorkbook.Path & "\temp1.gif"
    MyChart.Export Filename:=Fname, FilterName:="GIF"
End Sub

情况二:如果工作表上没有图表,可能需要创建一个临时图表,保存为GIF,删除,最后载入图片{

Me.Image1.Picture = LoadPicture(Fname)

} 初始化用户窗体时。

案例 1 更容易编码。即使我将图表剪切并粘贴到稍后隐藏的工作表中,上面的代码仍然有效。