Ниже приведен код, который заключается в том, чтобы получить электронную таблицу из SAP, а затем поработать с ней.Проблема в том, что когда я скачал файл Excel из SAP, он будет открыт автоматически, и когда я назначу рабочую книгу активной книгой, она выдаст ошибку: «Подстрочный индекс вне диапазона».Я на 100% уверен, что путь правильный, потому что, если я использую Workbook.Open, он работает.Большое спасибо за вашу помощь.
Sub GetMRO()
Today_Date = GetTodayDate()
Start_Date = StartDate()
WeekNum = WeekDate()
'Startup SAP
If Not IsObject(sApplication) Then
Set SapGuiAuto = GetObject("SAPGUI")
Set sApplication = SapGuiAuto.GetScriptingEngine
End If
If Not IsObject(Connection) Then
Set Connection = sApplication.Children(0)
End If
If Not IsObject(session) Then
Set session = Connection.Children(0)
End If
If IsObject(WScript) Then
WScript.ConnectObject session, "on"
WScript.ConnectObject sApplication, "on"
End If
'Access to FBL3N to get data
session.findById("wnd[0]").maximize
session.findById("wnd[0]/tbar[0]/okcd").text = "FBL3N"
session.findById("wnd[0]").sendVKey 0
session.findById("wnd[0]/tbar[1]/btn[17]").press
session.findById("wnd[1]/usr/txtV-LOW").text = "MRO"
session.findById("wnd[1]/usr/txtENAME-LOW").text = ""
session.findById("wnd[1]/usr/txtV-LOW").caretPosition = 3
session.findById("wnd[1]/tbar[0]/btn[8]").press
session.findById("wnd[0]/usr/ctxtSO_BUDAT-LOW").text = Start_Date
session.findById("wnd[0]/usr/ctxtSO_BUDAT-HIGH").text = Today_Date
session.findById("wnd[0]/usr/ctxtSO_BUDAT-HIGH").setFocus
session.findById("wnd[0]/usr/ctxtSO_BUDAT-HIGH").caretPosition = 10
session.findById("wnd[0]/tbar[1]/btn[8]").press
session.findById("wnd[0]/usr/lbl[27,12]").setFocus
session.findById("wnd[0]/usr/lbl[27,12]").caretPosition = 0
session.findById("wnd[0]").sendVKey 16
session.findById("wnd[1]/usr/ctxtDY_PATH").text = "C:\Users\Tung Hoang\Documents\Tung\Equipment\Planning\" & "Week " & WeekNum
session.findById("wnd[1]/usr/ctxtDY_FILENAME").text = "MRO week " & WeekNum & ".XLSX"
session.findById("wnd[1]/usr/ctxtDY_FILENAME").caretPosition = 10
session.findById("wnd[1]/tbar[0]/btn[0]").press
Dim wbMRO As Workbook
Set wbMRO = Workbooks("C:\Users\Tung Hoang\Documents\Tung\Equipment\Planning\" & "Week " & WeekNum & "\" & "MRO week " & WeekNum & ".XLSX")
wbMRO.Activate
End Sub