Excel Avanzado

Macros, Vba en Excel y muchos ejemplos de nuestro Curso de Excel Avanzado

Excel Avanzado
ICONO 2 150x150, Qué es SET en VBA

Qué es SET en VBA

| 1 comentario

¿Qué es una variable objeto?

Una variable objeto, o tipo objeto, representa un objeto completo, tal como una hoja de trabajo o un rango de celdas. Las variables objeto son importantes porque simplifican la programación y el código se ejecuta más rápidamente.
Las variables tipo objeto almacenan múltiples valores, a diferencia de las variables tradicionales. 

¿Que es Set?

La instrucción Set se utiliza para asignar valores a una variable tipo objeto.

Set nombreVariable = nombreObjeto
Set celda = Worksheets("Hoja1").Range("A1")

Ejemplo 1:

Se define la variable Celda de tipo objeto (Range). Utilizando la instrucción Set, se le asigna a la variable Celda el objeto Worksheets("Hoja1").Range("A1"). La variable Celda ha "heredado" las propiedades y métodos del objeto asignado (Value, Font).

Sub VariableObjeto2()
'Declaración de la variable objeto
Dim Celda As Range

    'Uso de la instrucción SET para asignar valores a la variable objeto Celda
 Set Celda = Worksheets("Hoja4").Range("A1")

    Celda.Value = 200
    Celda.Font.Bold = True
    Celda.Font.Italic = True
    Celda.Font.Size = 10
    Celda.Font.Name = "Cambria"

End Sub

Uso de Set con VBA 1, Qué es SET en VBA

Uso se Set con VBA

 

 

Un comentario

  1. HOLA A TODOS, QUIERO COPIAR EL CONTENIDO DE UNA TABLA DE UN ARCHIVO1 A OTRO ARCHIVO2 CON LOS MISMOS CAMPOS PARA IR HACIENDO UN CONCENTRADO(ARCHIVO2) DE DATOS PARA QUE ARCHIVO1 SOLO TENGA LA DATOS DEL DIA Y SEA MAS LIGERO EN LA PRUEBA QUE HISE DE COPIAR CELDA A Y B CON 15 LINEAS SI ME REALIZO LA COPIA A LA HOJA2 PERO AL REALIZARLO EN LA TABLA CON VARIAS CELDAS Y LINEAS ME MANDA MENSAJE DE ERROR OBJETO 454 Y NO TENGO IDEA DE POR QUE
    ALQUIEN PODRIA AYUDARME POR FAVOR?

    Sub Macro3()
    '
    ' Macro3 Macro
    ' determina el numero de celdas ocupadas incluyendo el titulo
    ND = Hoja1.Range("A" & Rows.Count).End(xlUp).Row
    ' comienza el bucle para realizar la copia
    For x = 9 To ND
    Sheets("HOJA2").Select
    Rows("9:9").Select
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove
    Range("A9").Select
    Sheets("HOJA1").Select
    Range("A" & x, "B" & x).Select
    Selection.Copy
    Sheets("HOJA2").Select
    Selection.PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks _
    :=False, Transpose:=False
    Range("A9").Select
    Next
    Sheets("HOJA1").Select
    Range("A9").Select
    Application.CutCopyMode = False

    End Sub

Deja una respuesta

Los campos requeridos estan marcados con *.