Do Until ActiveCell leer ist

Mit dem folgenden code, den ich versuche zu kopieren, einen Wert aus einer XLS (initialVal) und fügen Sie eine GUI-text-Feld. Dann möchte ich die eine Schleife eingeben und bekommen den nächsten Wert (nextVal) mit der ActiveCell anrufen und Verschiebung (verschieben um eine Zeile nach unten).
Ich möchte zu halten, abrufen(und einfügen auf die GUI) wird der nächste Wert in die nächste Zeile (gleiche Spalte), bis Sie Sie findet eine leere Zelle.

Mit dem code unten, dass ich arbeite, es fügt den anfänglichen Wert "fine" (2,7), aber es dann ständig Pasten (in einer Endlosschleife) das erste
Zeile/Spalte und scheint nicht zu erhöhen/offset durch die Werte, d.h. Die Erwartung ist:

(2,7) Anfangswert 
(3,7) Nächsten Wert 
(4,7) Der Nächste Wert 
(5,7) Nächsten Wert 
(6,7) Nächsten Wert usw usw bis leer 
Set objExcel = CreateObject("Excel.Application")
Set objWb = objExcel.Workbooks.Open("C:\test.xlsx")
Set objSheet = objWb.Worksheets("sheet1")

Set initialVal = objSheet.Cells(2, 7)

'At this point code (TBC, not required to highlight this issue) will paste the
'initialVal to a text field in the GUI and subsequently clear/delete the field

Sub test1()
    Set nextVal = ObjExcel.ActiveCell

    Do Until IsEmpty(nextVal)
        nextVal.Offset(1, 0).Select
        'Again, at this point the code will paste the nextVal to the GUI (and
        'subsequently clear it) , loop back and move down one cell and paste that
        'next cell until it hits an empty cell and come out of the loop
    Loop
End Sub

Call test1
  • Hat die Lösung funktioniert?
  • Hi. Dies funktionierte ja.....Danke für die Hilfe
InformationsquelleAutor CodeSpy | 2017-06-02
Schreibe einen Kommentar