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.
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: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 variableie
. 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