我试图通过以下部分代码将excel表中的数据提取到我的SAP系统中:
Dim xcl As Object
Dim wbk As Workbook
Dim sht As Worksheet
Application.DisplayAlerts = False
Set xcl = CreateObject("Excel.Application")
Set wbk = Workbooks.Open("C:\....")
Set sht= wbk.Sheets("excel1")
Dim j As Integer
For j = 0 To 2
**session.findById("wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I[1," & Int(j) & "]").Text = sht.Range("B1:B3").Value**
Next j
End Sub
关于stackoverflow的大量研究(@scriptman是我的英雄),我终于能够使用“& Int(j)&”在SAP系统中获取数据。 但它只有在我使用sht.Range(“B1”)时才有效。值
如果我使用,sht.Range(“B1:B3”)。值,我在上面的粗线中得到错误 “运行时错误613” 该方法得出了无效的争论“
请帮忙。 我被困在这一个月以后。
答案 0 :(得分:1)
如何传递一系列值?
你不是。您不能将3个单元格值放在1个插槽中。您希望在3个广告位中使用[B1:B3]
,因此在0-2循环内,您将在第B
行的j + 1
列中获取该单元格 - 我很难格式化该ID字符串在代码块中,所以我将它提取到自己的变量中;它还使赋值指令更清晰:
Dim id As String
id = "wnd[1]/usr/tabsTAB_STRIP/tabpSIVA/ssubSCREEN_HEADER:SAPLALDB:3010/tblSAPLALDBSINGLE/ctxtRSCSEL_255-SLOW_I"
For j = 0 To 2
session.findById(id & "[1, " & j & "]").Text = sht.Range("B" & j + 1).Value
Next j
答案 1 :(得分:0)
如果您创建总和,则可以将其转移到SAP。
例如:
session.findById(“wnd [1] / usr / tabsTAB_STRIP .... ctxtRSCSEL_255-SLOW_I [1,”& Int(j)&“]”)。Text = xcl.WorksheetFunction.Sum(sht。范围( “B1:B3”))
此致 ScriptMan