【问题标题】:Displaying "live" chart data in Excel Userform在 Excel 用户窗体中显示“实时”图表数据
【发布时间】:2020-01-28 00:48:48
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: excel vba charts userform


    【解决方案1】:

    案例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
    

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

    Me.Image1.Picture = LoadPicture(Fname)
    

    } 用户窗体初始化时。

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

    【讨论】:

    • 不要选择 GIF 格式。 MS 过滤器产生不良图像。您可以使用 BMP 执行完全相同的步骤,以获得像素完美的图表图像。连 JPG 都比 GIF 好。
    • 我不同意。至少在我最小型笔记本电脑上的 Excel 2013 中,我无法区分 BMP、GIF 和 PNG,但 JPG 与众不同。它模糊不清,线条颜色没有忠实再现。 Here is my sample image. 图表图像的最佳格式是 PNG,但 LoadPicture 不接受这种格式,只有 BMP、GIF 或 JPG。所以使用 GIF 或 BMP。
    • 这完美!我选择了案例 1,因为我在工作表中有图表。非常感谢!
    • 对于PNG google LoadImage,它也可以做透明。为什么不简单地使用 pastePicture 而不是将图片复制到磁盘并重新读取呢?
    猜你喜欢
    • 2017-05-08
    • 1970-01-01
    • 2017-06-15
    • 1970-01-01
    • 2019-07-23
    • 1970-01-01
    • 2019-06-02
    • 2020-10-09
    • 1970-01-01
    相关资源
    最近更新 更多