#vba #file #upload
Вопрос:
Мне нужен очень стабильный способ загрузки файлов в SAP с помощью VBA.
Приведенный ниже код работает на некоторых компьютерах, но не работает на других. Он также работал на моем компьютере сразу после новой установки Windows, но через несколько дней не работает. Похоже, что эта проблема вызвана настройками Windows.
Я хотел бы получить некоторую помощь в изменении этого кода или совершенно новом способе загрузки.
filepath = rng.Offset(0, 20)
If filepath <> "" Then
Wshell.Run "C:Tempcode.vbs " amp; filepath amp; " " amp; "Open File", 0, False
End If
session.findById("wnd[0]/usr/tabsTAB_MAIN/tabpTSMAIN/ssubSCR_MAIN:SAPLCV110:0102/btnPB_FILE_BROWSER").press
<< код.vbs>< код.vbs>>
set Wshell = CreateObject("WScript.Shell")
Do
bWindowFound = Wshell.AppActivate(WScript.Arguments(1))
WScript.Sleep 2000
Loop Until bWindowFound
Wshell.sendkeys "%n" 'alt n
Wshell.sendkeys WScript.Arguments(0)
WScript.Sleep 200
Wshell.sendkeys "%o" 'alt o
WScript.Sleep 200
Комментарии:
1.
SendKeys
известно, что он ненадежен, даже заблокирован на некоторых машинах, поэтому используйте код, который не зависит от пользовательского интерфейса.2. Пожалуйста, обратите внимание на следующую ссылку: blogs.sap.com/2014/03/26/… Обычно свойство «Показывать собственные диалоговые окна MS Windows» должно быть отключено. Тогда вам придется перезаписать часть сценария на этом этапе и использовать его вместо устаревшей конструкции с помощью клавиш отправки.
3. спасибо за ваш обнадеживающий ответ. Я пытался, но потерпел неудачу, потому что я не знаю подробного способа получения скрипта в диалоговых окнах Show native Microsoft. Можете ли вы объяснить это более подробно?
4. Если вы выполнили рекомендуемую настройку в SAP, вам придется выполнить новую запись сценария, как показано по ссылке: blogs.sap.com/2014/08/04/script-recording-playback-for-dummies Вы также можете получить предложение по этой ссылке: blogs.sap.com/2012/11/19/…