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
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ich bin nicht ändert sich nichts, in der Logik. Nur die Korrektur der Fehler.
Schreiben Sie Ihre sub:
Hier ist ein weiterer Weg zur Erreichung des job. Es erfordert nicht, um die Zellen auszuwählen, und tun das offset wieder und wieder. Sie können direkt Holen sich die benötigten Werte aus den Zellen.