2017-05-29 2 views
3

Gibt es eine Möglichkeit, mit UsedRange aus der ersten bis letzten Spalte einer Tabelle auszuwählen?Excel: usedrange mit Spalten der Tabelle

Hier ist der ursprüngliche Code:

Worksheets("Sheet1").UsedRange.Columns("E").Cells 

Aber es kommt aus der ersten Reihe zum letzten Maximum von Excel und ich will das nicht. Also habe ich versucht, so etwas zu tun:

Dim LastRow As Integer 
    Dim ws As Worksheet 

Set ws = Worksheets("Sheet1") 
    LastRow = ws.Cells(Rows.Count, 1).End(xlUp).Row 

With ws.UsedRange.Columns("E2:E & LastRow").Cells 

Obwohl dies scheint nicht, hier zu arbeiten, und so war ich im Zweifel, ob es ein richtiger Weg, diesen oder das Usedrange zu tun, es ist nicht die beste dafür.

Darüber hinaus möchte ich THIS Code von Jeeped zur Verfügung gestellt, aber ich muss wissen, ob es möglich ist, dieses Problem zuerst zu lösen.

Antwort

3

Sie den Bereich direkt nutzen könnten,

with ws 
    with .range(.cells(1, "E"), .cells(.rows.count, "E").end(xlup)) 
     'do something with the cells in column E 
    end with 
end with 

Sie könnten .UsedRange verwenden mit Intersect

with Intersect(ws.UsedRange, ws.columns("E")) 
    'do something with the cells in column E 
end with 
+0

Sie sollten 'Dim LastRow Als Long', nicht als eine ganze Zahl, wenn Sie werde es benutzen. – Jeeped

+0

danke! es funktioniert jetzt. Ich war wirklich neugierig auf UsedRange, ich wusste nicht, ob ich es tippen könnte wie mit Select. – paulinhax

+0

Denken Sie daran, dass es sich um eine Eigenschaft eines Arbeitsblatts handelt, so dass (im obigen Fall) "ws" als Präfix zur Zuweisung eines übergeordneten Arbeitsblatts benötigt wird. – Jeeped

0

Versuchen Sie dies, aber verwenden Sie niemals .Select.

With ws 
    .Range("E2:E" & LastRow).Select 
End with 
Verwandte Themen