sintaxis para "Range("B9:B36,C9:C36,E9:E36").Select" con variable

07/06/2007 - 16:42 por ClaudioCR | Informe spam
nesecito saver la sintaxis para "Range("B9:B36,C9:C36,E9:E36").Select" para
trabajrla con variables
 

Leer las respuestas

#1 KL
07/06/2007 - 18:22 | Informe spam
Hola Claudio,

"ClaudioCR" wrote in message news:
nesecito saver la sintaxis para "Range("B9:B36,C9:C36,E9:E36").Select" para
trabajrla con variables



No entiendo cual es el problema. Tal como lo pones funciona perfectamente. Si quieres añadir/quitar areas mediante variables podrias
hacer al menos dos cosasÑ

1) Crear variables del tipo String y luego concatenarlas separando por comas, p.ej.:

Sub test1()
Dim x As String, y As String, z As String
x = "B9:B36"
y = "C9:C36"
z = "E9:E36"
Range(x & "," & y & "," & z).Select
End Sub

o bien

Sub test2()
Dim x As String, y As Variant
y = Array("B9:B36", "C9:C36", "E9:E36")
For i = LBound(y) To UBound(y)
If x = "" Then x = y(i) Else x = x & "," & y(i)
Next i
Range(x).Select
End Sub

2) Usar variables del tipo Range con la funion Union, p.ej.:

Sub test3()
Dim x As Range, y As Range, z As Range
Set x = Range("B9:B36")
Set y = Range("C9:C36")
Set z = Range("E9:E36")
Union(x, y, z).Select
End Sub

Sub test4()
Dim x As Range, y As Variant
y = Array("B9:B36", "C9:C36", "E9:E36")
For i = LBound(y) To UBound(y)
If x Is Nothing Then Set x = Range(y(i)) _
Else Set x = Union(x, Range(y(i)))
Next i
x.Select
End Sub

Nota:
- Excel 2003 tiene la limitacion de un maximo de 2,048 areas por seleccion
- El largo de la cadena de texto usada dentro de la propiedad Range(...) no puede superar 255 caracteres.

Saludos,
KL

Preguntas similares