在Excel用户窗体中显示“实时”图表数据

use*_*203 1 excel charts vba excel-vba userform

因此,我一直在研究以用户窗体显示图表的模式。普遍的共识似乎是您必须将图表另存为.GIF文件,然后将其作为图像上传到用户表单中,但这意味着使用该用户表单的任何人都必须将文件另存为图像。为了查看信息(我不相信我的任何同事都会花时间学习如何做到这一点,他们只是想快速浏览一下图表)。

是否有一种解决方法可在用户表单中显示图表(该图表不断被传入的数据更新)?我尝试了多种途径,却没有找到任何东西...另外,我的Excel 2013在工具箱中似乎没有Microsoft Office Charts选项,这是否已更改?

谢谢!

小智 6

情况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
Run Code Online (Sandbox Code Playgroud)

情况2:如果图表不在工作表中,则可能需要创建一个临时图表,将其另存为GIF,删除它,最后加载图片{

Me.Image1.Picture = LoadPicture(Fname)
Run Code Online (Sandbox Code Playgroud)

初始化用户表单时。

情况1易于编码。即使我将图表剪切并粘贴到以后隐藏的工作表中,上面的代码仍然有效。