“方法得到无效参数”范围中的错误(“B1:B3”)。值

时间:2017-06-28 14:44:41

标签: vba excel-vba excel

我试图通过以下部分代码将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” 该方法得出了无效的争论“

请帮忙。 我被困在这一个月以后。

2 个答案:

答案 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