如何正确地将Excel中的数据拉入Powerpoint

如何正确地将Excel中的数据拉入Powerpoint,excel,vba,powerpoint,Excel,Vba,Powerpoint,我有一个powerpoint演示文稿,幻灯片上有几个标签。我需要从与powerpoint演示文稿文件位于同一文件夹中的excel工作表中提取标签的值 到目前为止,我用于填充标签的代码如下: Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow) If Wn.View.CurrentShowPosition = 1 Then 'load variable values? Dim xlApp A

我有一个powerpoint演示文稿,幻灯片上有几个标签。我需要从与powerpoint演示文稿文件位于同一文件夹中的excel工作表中提取标签的值

到目前为止,我用于填充标签的代码如下:

Public Sub OnSlideShowPageChange(ByVal Wn As SlideShowWindow)
   If Wn.View.CurrentShowPosition = 1 Then
        'load variable values?
        Dim xlApp As Object
        Dim xlWorkBook As Object
        Set xlApp = CreateObject("Excel.Application")
        xlApp.Visible = False
        Set xlWorkBook = xlApp.Workbooks.Open(ActivePresentation.Path & "\QSheet.xlsx", True, False)
        BrownRetail = xlWorkBook.Sheets(1).Range("B3").Value
        lblBrownTruckRetail.Caption = "$" & CCur(BrownRetail)
        Set xlApp = Nothing
        Set xlWorkBook = Nothing
   End If
End Sub
这是可行的,只是在开始演示时加载10-15秒的速度非常慢,而且标签显示为白色背景,而不是透明的。此外,即使在设计视图中,标签值也保持持久性,这对我来说似乎很奇怪


是否有更好的方法从excel工作表中提取值以填充标签?

您可能会发现从纯文本文件加载值更快:这样您就不需要每次加载excel。至于在设计视图中持久化的值:如果以编程方式设置标签的标题属性,那么即使在退出演示文稿后,您也会希望它仍然被设置,即,没有任何东西将这些值标记为临时值。我通常不使用PPT,我想我把它看作是一个正在运行的程序,然后在程序关闭后保留标签值。我喜欢从文本文件(可能是csv)加载的想法?从您的代码示例中不清楚lblBrownTruckRetail表示哪种类型的对象。我猜这是“开发者”选项卡中的各种控件之一,可以解释白色背景。您可能需要将标准PowerPoint文本框中的文本设置为BrownDetail值。我还将BrownRetail声明为字符串,而不是简单地使用它;将optionexplicit放在每个模块的顶部也是一个很好的做法,以迫使您声明变量。看起来很讨厌,但从长远来看可以省去很多麻烦。