Sé que puede tomar fácilmente un rango de celdas y pegarlas en una Variant Array, pero quiero trabajar con una matriz de cadenas (porque es unidimensional y requiere menos memoria que una matriz Variant).Excel VBA: Rango a String Array en 1 paso
¿Hay alguna forma de convertir automáticamente un rango en una matriz de cadenas?
En este momento estoy usando una función que tomará el rango y guardará los valores en una matriz variante, luego convierta la matriz variante a una matriz de cadenas. Funciona bien, pero estoy buscando una forma de ir directamente del rango a la matriz de cadenas. Cualquier ayuda sería muy apreciada.
Function RangeToArray(ByVal my_range As Range) As String()
Dim vArray As Variant
Dim sArray() As String
Dim i As Long
vArray = my_range.Value
ReDim sArray(1 To UBound(vArray))
For i = 1 To UBound(vArray)
sArray(i) = vArray(i, 1)
Next
RangeToArray = sArray()
End Function
ACTUALIZACIÓN: es que parece que no hay manera de saltarse el paso de tirar los datos en una matriz de variables primero antes de convertirlo en una matriz de cadenas unidimensional. Una pena si es verdad (incluso si no requiere mucho esfuerzo, me gusta optimizar al máximo, así que esperaba que hubiera una forma de saltear ese paso). Cerraré la pregunta en unos días si no se presenta ninguna solución. Gracias por los útiles comentarios, chicos!
ACTUALIZACIÓN2: La respuesta es para Simon, quien hizo un gran esfuerzo (al igual que todos los demás) y puntualizó que de hecho es imposible pasar del rango a la matriz de cuerdas en una sola toma. Gracias a todos.
Hay rutinas de manipulación de memoria directos se puede acceder en VBA para crear una función muy eficiente para convertir la matriz. No tengo el tiempo y las habilidades para montar uno, aunque tengo un código de mapeo de memoria en mi aplicación principal, por lo que está disponible y te ayudará a crear un programa de copia de matriz extremadamente eficiente. –
El enlace a una respuesta que di con algunas de las funciones de memoria es [aquí] (http://superuser.com/questions/196565/how-to-merge-data-from-two-differently-structured-excel -files/196577 # 196577). –
Aunque no pude aplicar la información en sus enlaces a este problema en particular, fue una buena lectura e interesante. Gracias por el enlace. – aevanko