Visual Basic - Error 9 "El suníndice está fuera del intervalo"

Life is soft - evento anual de software empresarial
 
Vista:

Error 9 "El suníndice está fuera del intervalo"

Publicado por leondinino (3 intervenciones) el 27/05/2011 05:23:10
Es que me marca el error 9 que es "El subíndice está fuera del intervalo", ya cheque la ayuda pero nbo entiendo como resolverlo. Lo compile paso por paso y el error me lo marca en "For Each ...". Aquí les dejo el pequeño programa. De antemano gracias.
Dim c As Object
Sub Seleccion()
For Each c In Worksheets("Sheet1").Range("A1:A100")
If c.Value <= 8 Then
Font.Bold = True
Else
Font.Italic = True
End If
Next c
End Sub
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
Imágen de perfil de Antoni Masana
Val: 1.259
Plata
Ha mantenido su posición en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error 9

Publicado por Antoni Masana (558 intervenciones) el 30/05/2011 10:38:26
He probado el codigo y hay dos cosas que he modificado para que me funcione, Bueno tres cosa.

La primera: te lo ha comentado Paolo el DIM debe estar dentro de la función, por lo demas funciona

La segunda: la hoja a la que haces referencia en mi libro no existe y me da error 9. He cambiado Sheet1 por Hoja1 y ya no hay error 9. En tu caso el nombre que tenga la hoja de datos.

La tercera: la propiedad Font debe estar asociada a un objeto por lo que si realizo la modificacion c.Font igual que en el IF c.Value <= 8 then y ya funciona.

Sub Seleccion()
Dim c As Object
For Each c In Worksheets("Hoja1").Range("A1:A100")
If c.Value <= 8 Then
c.Font.Bold = True
Else
c.Font.Italic = True
End If
Next c
End Sub
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil
Val: 4
Ha aumentado su posición en 25 puestos en Visual Basic (en relación al último mes)
Gráfica de Visual Basic

Error 9

Publicado por Paolo Santos (76 intervenciones) el 30/05/2011 01:43:24
creo que el error consiste en dos cosas primero hay que introducir la declaracion de la variable adentro del sub, en lugar de esto:

Dim c As Object
Sub Seleccion()

que fuera asi:

Sub Seleccion()
Dim c As Object


luego falta declarar de que tipo va a ser el Object asi que como veo que es un objeto excel te aconsejo agregar lo siguiente antes del ciclo for each

Set c = CreateObject("Excel.Application")
For Each c In Worksheets("Sheet1").Range("A1:A100")

y segun veo veo creo que quieres manipular font.bold y el font.italic dentro de un rango, pues no se si como lo estas haciendo funcina pero por si acaso no te funcionara asi como lo estas haciendo prueba de esta forma:

c.ActiveSheet.Range(("A1:A100").Font.Bold = True
c.ActiveSheet.Range(("A1:A100").Font.Italic = True

espero te funcione esta solucion, saludos.....




------------------------------------------------------------------------------------------------------------------------------------
Recuerda: agradecer no cuesta nada, pero al menos, favor de informar si esto fue la solución, para que otros programadores tenga seguridad de la posible solucion, para aplicarlos
con mayor seguridad a sus proyectos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

Error 9

Publicado por diego ruiz (1 intervención) el 31/10/2016 20:21:15
1
2
3
4
5
6
7
8
9
Sub ActualizarReloj()
 
    'selecciono la celda C1 de la sheet A2 y fuerzo el recalculo de la formula que tengo alli
    'que es la formula o funcion "AHORA"
   * Worksheets("sheet2").Range("C1").Calculate
    'necesito una linea de codigo que llame ActualizarReloj (a si misma)usando un intervalo de tiempo
    Application.OnTime Now + TimeValue("00:00:01"), "ActualizarReloj"
 
End Sub


donde coloque el asterisco me aparece el error y no me deja funcionar la macro que puedo hacer con el error 9
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar