Проблема с загрузкой плоского файла после перехода с office 2016 на O365

#excel #vba

Вопрос:

У меня возникла проблема с кодом VBA после перехода с Office 2016 на O365. Пожалуйста, найдите код ниже. Мы используем эту логику VBA для загрузки файла с рабочего стола пользователя, сохранения его на сервере SAP BPC и запуска пакета BPC Data manager. Этот код отлично работает в Office 2016, но когда мы перешли на O365, код работает не так, как ожидалось.

1. Ниже приведен код VBA

 Sub LaunchMassiveUpload()  Dim objPackageFromSheet As New ADMPackage Dim suffix As String Dim fileSuffix As String Dim fileName As String Dim user As String Dim chainId As String Dim pkgPath As String Dim pkgDesc As String Dim pkgId As String Dim pkgType As String Dim teamId As String Dim usrGroup As String  suffix = Right(Application.Caller, 4) fileSuffix = Range("FILE_SUFFIX" amp; suffix).Value user = Range("USER").Value fileName = user amp; fileSuffix amp; ".csv"   MsgBox "Please name the file " amp; fileName amp; " and upload it to the ""Private"" folder (menu on the left)." amp; vbCrLf amp; _ "If the file is uploaded anywhere else, data will not be loaded in BPC.", vbInformation, "Info" EPM.DataManagerOpenFileUploadDialog  If MsgBox("Do you want to Copy the last " amp; fileName amp; " loaded file into BPC ?", vbYesNo, "Confirm") = vbYes Then   Dim path As String  Dim nam As String   path = Application.ActiveWorkbook.FullName  nam = ThisWorkbook.Name   path = Replace(path, nam, "")  path = path amp; Range("USER").Value amp; suffix   Open path For Output As #1  Write #1, ""  Close #1        objPackageFromSheet.fileName = Range("CHAIN_ID" amp; suffix).Value   objPackageFromSheet.groupId = Range("PATH" amp; suffix).Value   objPackageFromSheet.PackageDesc = Range("PACKAGE_DESC" amp; suffix).Value   objPackageFromSheet.packageId = Range("PACKAGE_ID" amp; suffix).Value   objPackageFromSheet.PackageType = Range("PACKAGE_TYPE" amp; suffix).Value   objPackageFromSheet.teamId = Range("TEAM_ID" amp; suffix).Value   objPackageFromSheet.UserGroup = Range("USER_GROUP" amp; suffix).Value   epm_dm_api.RunPackage objPackageFromSheet, path    If MsgBox("File Upload Triggered. Do you want to check Status ?", vbYesNo, "Confirm") = vbYes Then  EPM.DataManagerOpenViewStatusDialog  End If  End If  End Sub  

2. Проблема, с которой мы сталкиваемся после перехода на O365, приведена ниже

 If MsgBox("Do you want to Copy the last " amp; fileName amp; " loaded file into BPC ?", vbYesNo, "Confirm") = vbYes Then   Dim path As String  Dim nam As String   path = Application.ActiveWorkbook.FullName  nam = ThisWorkbook.Name   path = Replace(path, nam, "")  path = path amp; Range("USER").Value amp; suffix   Open path For Output As #1  Write #1, ""  Close #1  

Приведенное ниже сообщение не появляется после загрузки файла на сервер.

 If MsgBox("Do you want to Copy the last " amp; fileName amp; " loaded file into BPC ?", vbYesNo, "Confirm") = vbYes Then  

Не могли бы вы, пожалуйста, помочь, как я могу изменить код, чтобы он работал.

В случае возникновения каких-либо вопросов, пожалуйста, дайте мне знать

Комментарии:

1. Каково значение filename сразу после того, как вы установили для него значение? Что такое EPM ?

2. Это может быть проблема с библиотекой, для которой используется EPM.DataManagerOpenFileUploadDialog . Возвращается ли функция?

3. Привет, Винсент, эта функция EPM. DataManagerOpenFileUploadDialog возвращается, и я могу успешно загрузить файл. Следующие шаги не работают