2016-10-04 7 views
0

In einer Tabelle, die als Bestellformular funktioniert, beginnen die Daten in Zeile 84. Von dort aus kann es nur 1 Zeile Daten oder so viele wie Tausende geben. Manchmal sind auch leere Zeilen innerhalb dieser Daten vorhanden.Excel - Auswahl des Bereichs bis 5 leere Zeilen

Ich habe viele Fälle von Aussagen wie diese in meinem VBA-Codes:

Range("A84:X1000").Select 

Das Problem ist, dass manchmal, dass Bereich geht viel niedriger als es sein muss, und zu anderen Zeiten ist es nicht weit genug. Gibt es eine Möglichkeit, einen Bereich in einer bestimmten Zelle beginnen zu lassen (in diesem Fall A84) und erst zu beenden, wenn er 5 leere Zeilen erreicht?

Um ein Beispiel zu geben, wenn ich es verwenden muss, hier ist ein bisschen VBA-Code.

Sub FixNumbers() 
Range("D84:D1000").Select 
Dim c As Range 

Selection.NumberFormat = "General" 
For Each c In Selection.Cells 
    If (c > 99) And (c Mod 50) = 0 Then c = c + 1 
Next 
End Sub 
+0

warum das nicht: Bereich (Range ("A84"), Zellen (activesheet.usedrange.rows .count, 1))? – Pierre

+0

@Pierre Ich habe ein Beispiel hinzugefügt, wie ich derzeit die Range verwende. Wie würde ich das in das umsetzen, was ich jetzt habe? – Robby

Antwort

2

vorherigen Antworter Idee unter:

Sub FixNumbers() 
with Range("D84:D" & rows.count) 
    Dim c As Range 
    .NumberFormat = "General" 
    For Each c In .Cells 
     If (c > 99) And (c Mod 50) = 0 Then c = c + 1 
    Next 
end with 
End Sub 
1

Warum nicht die Methode xlUp verwenden? Dies simuliert Sie untersten Zeile markieren und die Taste Strg + up:

Set rngOppos = Sheets("Sheet1").Range("X84", Sheets("sheet1").Range("X" & rows.count).End(xlUp)) 
+1

Eigentlich ".Range (" X "& rows.count) .End (xlUp) .row +5) würde es tun. – Hrothgar

+0

Ich habe ein Beispiel hinzugefügt, wie ich derzeit den Bereich verwende. Wie würde ich das implementieren Was habe ich jetzt? – Robby

Verwandte Themen