¿Cómo puedo conservar el formato de un dato obtenido con la función VLookup()?

publicado por: Anonymous

Tengo una hoja con datos en distintos formatos (fechas, decimales, texto, etc.).

Busco un valor (my_index) en un rango (lookup_range) y quiero recuperar el dato para escribirlo en una celda de otra hoja.

La macro funciona bien, pero cuando el valor que recupero por la función VLookup es una fecha y la copio a la otra hoja, pierde su formato.

Dim lookup_range As Range
Dim my_index, my_value As Variant

my_value = Application.VLookup(my_index, lookup_range, num_col, False)
Sheets(3).Cells(num_row, last_col_s1 + num_col - 1).Value = my_value

Por eso, cuando el dato en lookup_range es 02/05/2015, el dato copiado en la Hoja 3 se muestra como si fuera el número 41761.

Necesito conservar el formato original que tiene el valor en la Hoja 1 al ser copiado a la Hoja 3.

solución

Las funciones “nativas” como vlookup() de Excel devuelven valores o información sobre una celda pero no ambos.

La alternativa es utilizar copiar y pegar o bien copiar y pegar especial en alguna de sus variantes. A continuación un ejemplo de copiar y pegar.

Sub ConservarFormato()
    Dim rgOrigen As Range, rgDestino As Range
    ActiveSheet.Activate
    Set rgOrigen = Range("B1")
    Set rgDestino = Range("F2")
    rgOrigen.Copy Destination:=rgDestino
End Sub
Respondido por: Anonymous

Leave a Reply

Your email address will not be published. Required fields are marked *