VARIANT ARRAY ¿¿UCASE??

galileogali

Well-known Member
Joined
Oct 14, 2005
Messages
748
No lo logro.
Tengo un Rango "A1:b2", con textos.
Quiero devolver un Rango desplazado, con los mismos textos pero en MAYUSCULAS, No quiero recurrir a Loops, pero hacerlo desde VBA, entonces intento con

Code:
Sub test()
Dim vArray
vArray = Range("A1:b2")

Range("a1:b2").offset(3,4) = [Ucase(vArray)] 'No Matricializa
End Sub

Usacr Uppercase existiendo Ucase??
Application.Evaluate?

Antes de darme por vencido pregunto.....

Obviamente CTRL+SHIFT+ENTER, sobre el Rango desplazado con MAYUSC(a1:B2), trae el Rango convertido, pero como hacerlo con VBA...??? sin LOOPS, acudiendo a VARIANT ARRAYS
 

Excel Facts

Save Often
If you start asking yourself if now is a good time to save your Excel workbook, the answer is Yes
Bueno, no es lo que usted querría; sino la forma de hacer en VBA lo que usted describió en su último renglón. Pero por lo menos no usa bucles. No hallo cómo hacer que UCase() accepta una matriz.
Code:
Sub falla()
    Dim v, w, x
    v = Array(Array("a", "b"), Array("c", "d"))
    w = Evaluate("UCase(v)")
    x = Evaluate(UCase(v))
End Sub

Sub funciona()
    Dim r As Range
    '// (using named range)
    'Set r = [testa1b2]
    '// (using hard-coded range)
    Set r = Range("A5:B6")
    With r.Offset(, r.Columns.Count + 1)
        .FormulaArray = "=upper(" & r.Address & ")"
        .Formula = .Value
    End With
End Sub

Y en cuanto a paisajes, sé de que hablas. Viví tres años en el oeste de Kansas que también es una llanura enorme. Siempre pensaba "estoy viviendo en la tabla de planchar de Dios". :-D
 
Upvote 0
Greg: tienens razón, no es precisamente lo que yo deseaba, pero por lo menos lograste encontrar que con r.address, enlazaba la cadena.... lo cierto es que esta vuelta, no "daba con el clavo".

Por ahora, pues, "el acto de conversion" solo logramos DENTRO de la planilla y no EN VBA, y sin cargar una string array, posicion a posicion, o dicho más claro, VARIANT ARRAY no parecen aceptar a UPPER.
 
Upvote 0
Greg: he tratado, sin lograrlo, de entender tu descomposición en Arrays de Arrays. Creo que si lo has intentado por allí, debe ser porque hay casos en que sí eso funciona, por lo que te agradeceré, cuando tengas tiempo, un ejemplo donde apliques este recurso, a pesar de que tal vez, no tenga relación directa con el problema que inicio este tema....
 
Upvote 0
Fue un experimento, nada más. Usted ya había probado vArray = Range("A1:b2") Entonces pensaba en tratar de mandar una matriz de otro formato a UCASE() pero parece que a UCASE() no le gustó el sabor de eso tampoco. Bueno no hubiera sido una solución bonita aunque sirviera con UCASE porque Excel no translada una matriz doble a celdas. Ejemplo:
Code:
Option Base 1
Sub ComparingVariantArrays()
    Dim v, w, x, z
    v = Array(Array("a", "b"), Array("c", "d"))
    ReDim x(1 To 2, 1 To 2)
    x(1, 1) = "a"
    x(2, 1) = "b"
    x(1, 2) = "c"
    x(2, 2) = "d"
    Range("A1:B2") = v
    Range("C1:D2") = x
    w = Range("A1:B2")
    z = Range("C1:D2")
End Sub
Si uno pone un Break Point en el END SUB y hace VIEW LOCALS se ve que los VARIANTS v y x son de formas diferentes pero parecidos.
 
Upvote 0

Forum statistics

Threads
1,223,962
Messages
6,175,654
Members
452,664
Latest member
alpserbetli

We've detected that you are using an adblocker.

We have a great community of people providing Excel help here, but the hosting costs are enormous. You can help keep this site running by allowing ads on MrExcel.com.
Allow Ads at MrExcel

Which adblocker are you using?

Disable AdBlock

Follow these easy steps to disable AdBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the icon in the browser’s toolbar.
2)Click on the "Pause on this site" option.
Go back

Disable AdBlock Plus

Follow these easy steps to disable AdBlock Plus

1)Click on the icon in the browser’s toolbar.
2)Click on the toggle to disable it for "mrexcel.com".
Go back

Disable uBlock Origin

Follow these easy steps to disable uBlock Origin

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back

Disable uBlock

Follow these easy steps to disable uBlock

1)Click on the icon in the browser’s toolbar.
2)Click on the "Power" button.
3)Click on the "Refresh" button.
Go back
Back
Top