У меня есть сценарий R, который запускается из книги Excel с помощью кнопки, связанной с сценарием VBA.
Проблема заключается в том, что каждый раз сценарий R сталкивается с ошибкой - скажем, он не находитодин из файлов, которые он должен был прочитать - окно Shell / cmd, в котором запущен R-скрипт, мгновенно закрывается.Проблема в том, что вы не видите никаких подсказок о том, почему это не удалось.Затем мне нужно отладить его вручную, изменив код и запустив в RStudio, чтобы найти ошибки - обычно я должен сделать это для других людей, которые не знают R.
Код VBA, который я использую, был скопирован и изменениз одного из SO сообщений, которые я нашел здесь.Я не очень опытный в VBA и не понимаю много кода, поэтому я ищу простое решение этого.Мой код VBA такой:
Option Explicit
Public Sub RunRscript()
ActiveWorkbook.Save
Dim shell As Object
Set shell = VBA.CreateObject("WScript.Shell")
Dim waitTillComplete As Boolean: waitTillComplete = True
Dim style As Integer: style = 1
Dim scriptPath As String
scriptPath = Range("F5").Value
Dim argument As String
argument = Range("F3").Value
Dim path As String
path = """C:\Program Files\R\R-3.4.2\bin\Rscript.exe"" """ & scriptPath & """ """
& argument & """"
ActiveWorkbook.Save
Dim errorcode As Integer
errorcode = shell.Run(path, style, waitTillComplete)
ActiveWorkbook.Save
End Sub
scriptPath
указывает путь к сценарию R, а argument
- это аргумент, который я передаю сценарию R.
Я попытался передатьобычные аргументы, чтобы держать окно cmd открытым, но мне не удалось понять это.Это также усложняется тем фактом, что, как я уже упоминал, я не очень хорошо понимаю синтаксис VBA, а переменная 'path' очень запутана из-за этих бесконечных двойных кавычек.