如何正确地将Excel中的数据拉入Powerpoint
我有一个powerpoint演示文稿,幻灯片上有几个标签。我需要从与powerpoint演示文稿文件位于同一文件夹中的excel工作表中提取标签的值 到目前为止,我用于填充标签的代码如下:如何正确地将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
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放在每个模块的顶部也是一个很好的做法,以迫使您声明变量。看起来很讨厌,但从长远来看可以省去很多麻烦。