Hallo zusammen,
hier eine Zeile aus meinem VBA-Code, wo ich in der Tabellendarstellung in SAP Zeilen markiere und dann die Kalkulationsdateien abrufe, weil SAP immer nur 1000 Zeilen abrufen kann. Jetzt will ich in einer For- Schleife mit den Variablen m bis n die nächsten 1000 markieren. Jedoch erkennt VBA im Code m - n als Differenz und markiert immer wieder die ersten 1000 Zeilen.
Kann jemand helfen?
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = m - n
Die Syntax mit absoluten Zahlen funktioniert, also
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = "1-1000"
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = "1001-2000" etc...
Jedoch weiß ich nicht immer vorher, wie viele Zeilen die Tabelle hat, deswegen muss ich mit den Variablen arbeiten.
So sieht der Code in dem Abschnitt komplett aus.
Dim lRow, eZeile, i As Long
lRow = session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").RowCount
Debug.Print lRow
eZeile = WorksheetFunction.RoundUp(lRow, -3) / 1000
Debug.Print eZeile
Dim m, n As String
m = 1
n = 1000
'Markieren und Kalkulationsdaten ziehen
For i = 1 To eZeile
session.findById("wnd[0]/usr/cntlGRID1/shellcont/shell").selectedRows = m - n
session.findById("wnd[0]/tbar[1]/btn[36]").press
m = m + 1000
n = n + 1000
If n >= lRow Then
n = lRow
End If
Debug.Print i
Debug.Print m
Debug.Print n
Next i
Bearbeitet vom Benutzer
vor 18 Stunden
|
Grund: Nicht angegeben