2016-07-05 13 views
1

Also in Excel Vba Ich versuche, einen Bereich zu wählen, aber jedes Mal einen anderen Bereich. Ich habe eine Schleife laufen, aber ich frage mich, wie ich eigentlich den Code schreiben würde, um die Reichweite zu ändern. So würde es für einen einzelnen Bereich aussehen.Wählen Sie einen anderen Spaltenbereich Excel VBA

Range("B7").Select 

Gibt es eine Möglichkeit, dies anstelle von Strings mit Zahlen zu tun, wie „B7“

d.h

Range(i).Select 

ich es brauche eine einzige Spalte auszuwählen. Jeder Rat würde geschätzt werden.

Dank

+2

'Spalten (1) .Wählen Sie" – xQbert

+0

für einzelne Zellen 'Zellen ([Zeile], [Spalte])' (wie 'Zellen (7, 2)' wäre B7) –

+1

Betrachten Sie [diese] lesen (http://stackoverflow.com/questions/10714251/how-to-avoid-using-select-in-excel-vba-macros). Die Verwendung von '.Select' kann zu Kopfschmerzen in Ihrem Code führen. Was @xQbert wird sicherlich funktionieren, wenn Sie versuchen, eine ganze Spalte auszuwählen. Angenommen, Sie wollten den Bereich ändern, aber nur Zellen in einer Spalte durchlaufen, könnten Sie etwas wie 'Range (" B "& i)' – Kyle

Antwort

0

Nun, wenn Sie nur eine Zelle selct haben:

Cells(y, x) 

Aber weil Sie mehr wählen haben:

Dim testRange As Range 

    Set testRange = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1, 1), Worksheets("Sheet1").Cells(100, 1)) 

    testRange.Select 'Optional 
    testRange = "If you read this, you are awsome!" 

Einschließlich, dass Sie eine Schleife wollen:

Dim testRange As Range 
Dim x as Integer 

    For x = 1 To n 'n = whatever you want 
    Set testRange = Worksheets("Sheet1").Range(Worksheets("Sheet1").Cells(1, x), Worksheets("Sheet1").Cells(100, x)) 

    testRange.Select 'Optional 
    testRange = "If you read this, you are even more awesome!" 'Fills 100x100 Cells with this text 
    Next x 

Ich hoffe, das ist hilfreich :)

0

Wenn Sie wissen, wo die Zelle in die Startreihen relativ Sie versetzt, so etwas zu tun, verwenden könnte:

dim rng as Range 
dim i as integer 
set rng = range("B7") 
for i=0 to 10 
    rng.offset(0,i).select 
next i 

nachschlagen Offset zu lernen, wie zu ändern, dies zu passen Sie Ihre Bedürfnisse