1

我需要通过以下方式从 R 运行 PowerPoint 子程序:

shell(shQuote(normalizePath("C:/.../VBA_Script.vbs"))). 

该脚本VBA_Script应触发一个名为request_bank, which should open amsgbox with the value of the variablebank (=J. P. Morgan 的子程序)。

我得到错误:

Application.Run:无效请求。子或函数未定义,代码:80048240,MS PowerPoint 2013。

我刚刚尝试了这个线程Run PowerPoint Sub from Excel中提到的所有不同的 Run.-Paths 。我仍然得到错误。我想知道如果我在 Excel 中运行相同的 Sub 或添加行,为什么相同的代码会起作用:

Dim PSlide
Set PSlide = PPres.Slides(1).Duplicate

但这对我来说不是一个干净的解决方案。一定会有更好的办法。

VBS 脚本:选项显式

CallPMacro

Sub CallPMacro() 

Dim PApp   
Dim PPres
'Dim PSlide

Set PApp = CreateObject("PowerPoint.Application") 
Set PPres = PApp.Presentations.Open("C:\...\test.pptm", 0, True) 
'Set PSlide = PPres.Slides(1).Duplicate
PApp.Visible = True
PApp.Run "request_bank"
PApp.Quit 

Set PPres = Nothing 
Set PApp = Nothing 

End Sub 

request_bank来自 Sub中的VBA 代码test.pptm

Sub request_bank()
Dim bank As String
bank = "J.P. Morgan"
MsgBox ("bank: " & bank)
End Sub

知道如何解决吗?

4

0 回答 0