从R启动VBA宏

Bam*_*mbs 5 vbscript excel vba r excel-vba

我目前正在尝试从R启动一个非常简单的VBA宏.为此,我遵循此处找到的过程:从R运行VBA脚本 不幸的是,当我打开Excel文件之后,它已损坏并且Excel停止.这是我的代码:

:

library(XLConnect)
saveWorkbook(wb,pathfile)
# The saveWorkbook part is working
shell(shQuote(normalizePath(pathtovbs)), "cscript", flag = "//nologo")
Run Code Online (Sandbox Code Playgroud)

:

Option Explicit
On Error Resume Next
ExcelMacroExample
Sub ExcelMacroExample() 
  Dim xlApp 
  Dim xlBook 
  Set xlApp = CreateObject("Excel.Application") 
  Set xlBook =     xlApp.Workbooks.Open(pathfile, 0, True) 
  xlApp.Run "PERSONAL.XLSB!MyMacro"
  xlApp.Quit 
  Set xlBook = Nothing 
  Set xlApp = Nothing 
End Sub
Run Code Online (Sandbox Code Playgroud)

PESONAL.XLSB!MyMacro:

Sub MyMacro()

 Dim ws As Worksheet
    For Each ws In Sheets
       ws.Range("C:C").EntireColumn.Delete
       ws.Range("A:A").EntireColumn.Delete
   Next ws
End Sub
Run Code Online (Sandbox Code Playgroud)

你知道发生了什么吗?我检查了每个文件的路径,它们很好.非常感谢你提前.

编辑:显然,问题来自vbscript.该文件打开但无法找到位于我的个人库(PERSONAL.XLSB)中的宏.当我手动打开Excel时,我可以访问这个宏,但是当我从另一个程序打开Excel时,我不能.知道为什么吗?

宝莲

Bam*_*mbs 1

我找到了解决方案。如果你们中的一些人尝试从 vbscript 调用个人库,您需要添加:

Dim objWorkbook
Set objWorkbook=xlApp.Workbooks.Open("D:\users\...\PERSONAL.XLSB")
Run Code Online (Sandbox Code Playgroud)

在启动宏之前。