gpt4 book ai didi

excel - 对象 'Text' 的方法 'ISapCTextField' 失败

转载 作者:行者123 更新时间:2023-12-04 20:10:36 29 4
gpt4 key购买 nike

我必须从 SAP 中提取数据。此错误随机发生:

Method 'Text' of object 'ISapCTextField' failed


我进行了搜索,但没有一个解决方案有效。多次尝试的错误处理也不起作用。我没有尝试更多方法,而是避免使用 .Text完全方法。
导致错误的行示例:
session.findById("wnd[0]/usr/ctxtMATNR-LOW").text = "500000000"
为了避免使用 .text方法,我用 SendKeys达到同样的目的。基本上将 SAP 窗口设置为事件窗口,并通过设置焦点在 SAP GUI 中选择所需字段,然后通过 sendkeys 使用 Ctrl+V将文本从范围粘贴到字段。下面是代码:
'Declaration
Declare Function FindWindow Lib "user32" Alias "FindWindowA" ( _
ByVal lpClassName As String, _
ByVal lpWindowName As String) As Long
Declare Function SetForegroundWindow Lib "user32" ( _
ByVal HWnd As Long) As Long


'Finds SAP Window.
Public Sub ActivateSAPWindow()

Dim HWnd As Long
'SAP window Name can be found on the status bar of the Portal.
'Note: This only works in when you click on R/3 and it open a portal. It will not work if it open in the internet explorer
'To make it work for internet explorer , Simply change the name of the Window to find internet explorer or any window you wish.
HWnd = FindWindow(vbNullString, "R/3 - SAP NetWeaver Portal - Internet Explorer")
If HWnd Then
SetForegroundWindow HWnd
End If

End Sub

Public Sub SAPSafeText(ID As String, OriginCell As String)

'Location of the cell you wanna copy to the field.
Worksheets("SAP Mapping").Range(OriginCell).Copy

Call ActivateSAPWindow
Session.FindByID(ID).SetFocus

SendKeys "^v"

'Important to wait for completion before next line.
Wait (5)
End Sub
要调用该函数,只需使用 SAP 脚本记录获取字段 ID 名称并解析为 SAPSafeText(“字段 ID 为字符串”,“单元格范围为字符串”)。
调用示例:
Call SAPSafeText("wnd[0]/usr/ctxtBWART-LOW", Low)
Call SAPSafeText("wnd[0]/usr/ctxtBWART-HIGH", High)
这是蛮力的方式,但它有效。
为什么会发生错误?
有没有更好的方法来处理这个?

最佳答案

我也遇到了同样的情况。我解决它。我认为那是您使用的句子

session.findbyid (*****).text = cells(i,j)

你应该尝试使用
session.findbyid (*****).text = cells(i,j).value

关于excel - 对象 'Text' 的方法 'ISapCTextField' 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49973440/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com