Macro para cambiar nombre de variable

Estimados Amigos

Tengo 5 variables (_Var1,_Var2_Var3_Var4_Var5) que son nombres de rangos y quiero mediante un FOR me cambie el numero de la variable _Var....1,2,3,4,5

Sub Editar()
Dim Rango As Range
Dim Resultado

Dim Numero As Integer
Busca = Worksheets("Formato").Range("_Reg")
Set Rango = Sheets("Data").Range("a6:cu105")

For
Worksheets("Formato").Range("_Var1").Value = Application.WorksheetFunction.VLookup(Busca, Rango,Numero, False)

End For

End Sub

Como se puede hacer?

1 Respuesta

Respuesta
1

Con esto puedes cambiar el número de la variable.

For i = 1 To 5
    Worksheets("Formato").Range("_Var" & i).Value = _
        Application.WorksheetFunction.VLookup(Busca, Rango, Numero, False)
Next

Lo que no me queda claro es que tienes en la variable "Numero", si te refieres también al contador, entonces debe ser así:

For i = 1 To 5
    Worksheets("Formato").Range("_Var" & i).Value = _
        Application.WorksheetFunction.VLookup(Busca, Rango, i, False)
Next

Saludos.Dante Amor
Si es lo que necesitas.

Resulto acertada tu respuesta Amigo, perdona la oportunidad para hacer otra consulta

Se trata de 3 macros "Nuevo", "Editar", "Grabar", tengo 2 Hojas "Formato" y "Data" en la hoja Formato tengo mi plantilla para cargar, editar datos.

Cuando escojo "Nuevo" utilizo "Grabar" para registrar en la ultima fila de mi "Data", cuando busco un registro uso "Editar" pero uso la macro "Grabar" para actualizar el registro en la misma Fila de DATA donde lo encontré. como hago para indicarle a la macro GRABAR que diferencie cuando el registro es "NUEVO" o "EDITADO"

Estoy programando el código asi

Sub Grabar()
Sheets("Data").Select
' Preguntar Si Registro es Nuevo..... si es Si
ActiveSheet.Range("B65536").End(xlUp).Offset(1, 0).Select 'Ubicar ultima Fila

Else

' que hago para indicar que actualice en la fila que encontró el registro a editar
End If
Destination:=Worksheets("Data").Range(Cells(ActiveCell.Row, 1).Address)
For mcelda = 0 To 99
Var = "_Var" & mcelda + 1
Worksheets("Formato").Range(Var).Copy Destination:=Worksheets("Data").Range(Cells(ActiveCell.Row, mcelda + 2).Address)
Next mcelda
End Sub

Con gusto te sigo ayudando, finaliza esta pregunta y crea una nueva pregunta por cada petición.

Saludos. Dante Amor

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas