【问题标题】:VBA PowerPoint set variable to nothingVBA PowerPoint 将变量设置为空
【发布时间】:2019-06-02 16:04:16
【问题描述】:

我对以下代码有疑问。代码现在可以工作,但直到我将变量设置为空(请参阅代码中带有 *** 的部分)。我收到各种错误消息(例如“462 远程服务器机器不存在或不可用”)

我的问题是:为什么我必须将这些变量设置为空?我想这与我使用循环有关吗?

提前致谢!

Sub Saveas_PDF() 
Dim PP As PowerPoint.Presentation
Dim prs As PowerPoint.Presentation
Dim Sl As PowerPoint.Slide
Dim sh As Variant
Dim company As String
Set Dropdown.ws_company = Tabelle2
company = Dropdown.ws_company.Range("C2").Value

Dim strPOTX As String
Dim strPfad As String
Dim pptApp As Object

Call filepicker

Dim Cell As Range

For Each Cell In Dropdown.ws_company.Range(Dropdown.ws_company.Cells(5, 3), 
Dropdown.ws_company.Cells(Rows.Count, 
3).End(xlUp)).SpecialCells(xlCellTypeVisible)

 Dropdown.ws_company.Range("C2") = Cell

 Set pptApp = New PowerPoint.Application

 Dim pptVorlage As String
 pptVorlage = myfilename


 Set PP = pptApp.Presentations.Open(pptVorlage)



 PP.UpdateLinks 'Datei --> Informationen --> Verknüpfungen --> Automatisch 
 aktualisieren Haken setzen

 Dim newpath As String
 newpath = Replace(myfilename, "AXO", "" & Cell & " AXO")

 Dim newpathpdf As String
 newpathpdf = Replace(newpath, "pptx", "pdf")


 PP.ExportAsFixedFormat "" & newpathpdf & "", ppFixedFormatTypePDF, 
 ppFixedFormatIntentPrint


 pptApp.Visible = True

 Debug.Print (PP.Name)
 AppActivate (PP.Name)

 PP.Close

***Set pptApp = Nothing
Set PP = Nothing***

Next

Set pptApp = New PowerPoint.Application
If IsAppRunning("PowerPoint.Application") Then
  If pptApp.Windows.Count = 0 Then

    pptApp.Quit
  End If
End If
End Sub

【问题讨论】:

  • 在为 cmets 发布代码时,使用缩进 总是很有用的,因此更容易了解正在发生的事情。不使用缩进有点像没有标点或段落的写作。
  • 不需要每次循环都创建一个新的PPT应用程序——在进入循环之前创建一个实例,然后在循环完成后退出该实例。
  • 您好,蒂姆,感谢您的回复。我使用了一些缩进让代码更容易阅读
  • 创建一个实例听起来不错,但我不知道该怎么做。你能给我一个提示吗?还有创建一个新的 PPT 应用程序的问题吗? (只是想了解错误背后的逻辑)

标签: vba loops powerpoint


【解决方案1】:

可能是因为您在以下行中的 de 循环内调用构造函数“New”:Set pptApp = New PowerPoint.Application

将“Set pptApp = New PowerPoint.Application”这一行移到 de foreach 之前试试看。

【讨论】:

  • 呵呵,你可以把这个答案标记为有用,也谢谢你! :)
  • 我做了 :) 但我不认为它的节目因为我是新成员
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-11-07
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-12-18
  • 1970-01-01
  • 2012-08-29
相关资源
最近更新 更多