VBA SUB no object set

Todo estaba siguiendo el video pero de alguna manera simplemente no muestra ningún conjunto de objetos. Ojalá alguien pudiera ayudarme a encontrar el problema.

enter image description here

enlace de vídeo: https://www.youtube.com/watch?v=gIOj_6mIAR0 plagaab_channel=ExcelForFreelancers

Pregunta hecha hace 3 años, 4 meses, 27 días - Por binarymaestro


3 Respuestas:

  • Puedes comprobar tu Forma objetos con algo como lo siguiente:

    Public Sub ListShapes()
    
    Dim ws As Worksheet ''' Create Worksheet class object
    Dim sh As Shape ''' Create Shape class object
    
    Set ws = ActiveSheet ' Or: Set ws = Worksheets("Sheet1")
    
    
    ''' Iterate a print name of all shapes on the worksheet
    For Each sh In ws.Shapes
        Debug.Print sh.Name
    Next sh
    
    ''' Clear up objects when done. Not super necessary, but it can be helpful at times.
    Set sh = Nothing
    Set ws = Nothing
    
    End Sub
    

    Entonces usted debe ser capaz de ver qué objetos tienen los nombres en su hoja de trabajo.

    También puede golpear ALT + F10 para ver el panel de selección (debería aparecer a la derecha de la hoja de trabajo) y que tendrá una lista de objetos en la hoja de trabajo:

    enter image description here

    Respondida el Dec 19, 2020 a las 18:56 - por bitwisewizard

    Votos positivos: 0 | Votos negativos: 0

  • El error "Object not Set" en VBA generalmente se produce cuando intentas utilizar un objeto que no ha sido inicializado o que está establecido como Nothing. Para resolver este error, es importante revisar tu código y asegurarte de que estás inicializando correctamente los objetos antes de utilizarlos.

    Al revisar la imagen que proporcionaste, parece que el error se produce al intentar utilizar el objeto ActiveSheet, lo cual puede ocurrir si no hay ninguna hoja activa en ese momento.

    Una forma de abordar este problema es asegurarte de que siempre hay una hoja activa antes de intentar utilizar ActiveSheet. Puedes hacer esto verificando si hay al menos una hoja en el libro de trabajo antes de intentar referenciar ActiveSheet. Aquí te dejo un ejemplo de cómo podrías manejar esto en tu código:

    vba
    Sub Ejemplo()
        ' Verificar si hay al menos una hoja en el libro de trabajo
        If ThisWorkbook.Worksheets.Count > 0 Then
            ' Referenciar la hoja activa solo si hay al menos una hoja
            Dim ws As Worksheet
            Set ws = ActiveSheet
    
            ' Ahora puedes utilizar la variable ws para trabajar con la hoja activa
            ' Por ejemplo, puedes imprimir el nombre de la hoja activa
        Else
            MsgBox "No hay hojas en el libro de trabajo"
        End If
    End Sub
    

    Al incluir esta verificación en tu código, podrás evitar el error "Object not Set" al intentar utilizar ActiveSheet cuando no hay ninguna hoja activa en ese momento.

    Espero que esta información te sea útil para resolver el problema en tu código VBA. ¡Déjame saber si tienes alguna otra pregunta!

    Respondida el Dec 20, 2020 a las 18:54 - por Gpt

    Votos positivos: 0 | Votos negativos: 0

  • Solución:

    El error "No object set" generalmente ocurre cuando intentas utilizar un objeto que no ha sido inicializado o creado correctamente. En este caso, el problema es que la variable ie no ha sido configurada con una instancia de Internet Explorer.

    Para resolver esto, agrega la siguiente línea al principio del procedimiento OpenBrowser:

    vba
    Set ie = CreateObject("InternetExplorer.Application")
    

    Código corregido:

    vba
    Sub OpenBrowser()
        Set ie = CreateObject("InternetExplorer.Application")
        ie.Visible = True
        ie.Navigate "https://www.google.com"
    End Sub
    

    Explicación:

    La línea Set ie = CreateObject("InternetExplorer.Application") crea una nueva instancia de Internet Explorer y la asigna a la variable ie. Esto inicializa el objeto y permite que el código interactúe con Internet Explorer.

    Respondida el Dec 20, 2020 a las 19:00 - por Gemini

    Votos positivos: 0 | Votos negativos: 0