2016-05-05 5 views
0

Wie beziehen Sie sich auf einen Bereich, in dem die Anzahl der Spalten bekannt ist, aber Sie wissen nicht, welche Zeile? Was ist der richtige Weg, Range("A&i:J&i") von Rendering?Bereich Bezugnahme mit bekannten Spalten und Zeilen Unknown Excel VBA

For i = 8 To WSData.Range("A8").End(xlDown).Row 

     If Cells(i, 1) = "Overall Totals:" Then 
      WSData.Range("A&i:J&i").Interior.Color = RGB(217, 217, 217) 
     End If 

Next 
+2

'Range ("A" & i & ": J" & i)' –

+0

Das funktionierte. Vielen Dank. – Dombey

Antwort

1

Scott Antwort ist natürlich ganz richtig. Es gibt jedoch verschiedene andere Möglichkeiten, auf einen variablen Bereich zu verweisen, den Sie möglicherweise nützlich finden.

1) Sie können auch verwenden WSData.Range("A10", "J10"), das heißt geben Sie die oben links und unten rechts Zellen als zwei getrennte Parameter. (Die Reihenfolge der paraneters nicht wirklich von Bedeutung!) In Ihrem Beispiel verwenden Sie: WSData.Range ("A" & i, "J" & i)

2) I Nummern finden Verwendung, eher als Buchstaben für Spalten ist nützlich, vor allem, wenn Ihre Spalten im Voraus unbekannt sind. Die grundlegende Struktur ist wie folgt.

WSData.Range(Cells(1,10), Cells(10,10) 'A10 to J10) 

oder in Ihrem Beispiel

WSData.Range(Cells(1,i), Cells(10,i)) 

Allerdings muss man vorsichtig sein! Das Standardarbeitsblatt für den Bereich Zellen ist das aktive Arbeitsblatt. Ist dies nicht der gleiche wie der WSData ist, wird es zu einem Laufzeitfehler führen. Dies ist jedoch leicht möglich, indem durch die Angabe des Arbeitsblatts, in dem die „Zellen“ vermieden gehören:

WSData.Range(WSData.Cells(1,i), WSData.Cells(10,i)) 

Dies aussehen kann ziemlich langatmig, aber es gibt Ihnen die vollständige Flexibilität bei der Angabe Ihren Bereichs, wie Sie Variablen für jede verwenden können der Zellparameter.

Verwandte Themen