#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 возвращается, и я могу успешно загрузить файл. Следующие шаги не работают