2016-07-29 17 views
-1

Auf einer Registerkarte habe ich eine Liste von Depots, denen alle eine eindeutige Depotnummer zugeordnet haben. Auf der anderen Registerkarte habe ich eine Liste mit Daten, die für jedes Depot zahlreiche Zeilen mit ihren Depotnummern in jeder Zeile enthält.Durcharbeiten einer Liste ohne Auswahl - EXCEL VBA

Ich muss im Grunde eine Datei für jedes Depot mit nur diesen Depots Informationen erstellen.

Normalerweise würde ich an der Spitze der Liste der Depots starten, und verwenden

While Not ActiveCell.Value="" 

Dann kopiere ich das Blatt, löschen Sie alle Zeilen, die beinhalten knapp über das Depot, als neue Datei speichern und verwenden ActiveCell (2,1). Wählen Sie, um das nächste Depot auszuwählen und zu wiederholen.

Allerdings brauche ich eine Möglichkeit, dies zu tun, ohne Auswahl zu verwenden. Kann jemand bitte beraten?

+1

Sie sind sich bewusst, [von] (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros)? – pnuts

+1

Ja, ich habe das gesehen, aber | scheint nicht zu finden, was ich für mein spezifisches Szenario benötige –

+1

Lesen Sie durch [Wie vermeidet man die Verwendung von '.Select'] (https://stackoverflow.com/questions/10714251/how-to -avoid-using-select-in-excel-vba-macros) – BruceWayne

Antwort

0

Fügen Sie eine Variable hinzu, um eine Zeilennummer zu speichern, und wickeln Sie Ihren Code in eine Schleife ein, die das tun sollte.

Public Sub Sample() 
Dim LngRow as Long 
Dim WkSht as Worksheet 

Set WkSht = ThisWorkbook.Worksheets("Sheet1") 
    LngRow = 2 
    Do Until WkSht.Range("A" & LngRow) = "" 
     ExportDepot WkSht.Range("A" & LngRow) 
     LngRow = LngRow + 1 
    Loop 
Set WkSht = Nothing 
+0

Es gibt eine Reihe von Möglichkeiten, wie Sie dies tun können. Ich würde vorschlagen, dass Sie Ihren Code möglicherweise an [Code Review] (http://codereview.stackexchange.com/) senden, damit er überprüft wird. –

Verwandte Themen