Visual Basic - Error de compilacion no se ha definido sub o function

Life is soft - evento anual de software empresarial
 
Vista:
sin imagen de perfil

Error de compilacion no se ha definido sub o function

Publicado por juan daniel (1 intervención) el 14/02/2024 15:07:06
Hola buen día os agradecería mucho la ayuda, estoy en una clase sobre optimización de finanzas y uno de los libros que debemos leer me dice que debo copiar y pegar un código en VBA, el código se me da el lio es cuando voy a pegarlo me sale el error de "no se ha definido SUB (soy muy nuevo en macros).

aqui dejo el codigo que se me pide copiar y pegar, cabe destacar que tambien le puse nombre a las celdas como aparecen en el codigo "Number" "Estimate"

Sub MonteCarlo()
n = Range(“Number”)
Hits = 0
For Index = 1 To n
If Rnd ^ 2 + Rnd ^ 2 < 1 _
Then Hits = Hits + 1
Next Index
Range("Estimate") = 4 * Hits / n
End Sub


por favor quien me pueda ayudar se lo agradecería, según el libro no deberia haber mucho problema con el codigo
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 Leonardo

Error de compilacion no se ha definido sub o function

Publicado por Leonardo (14 intervenciones) el 15/02/2024 18:10:18
¿Dónde pegaste el Código? ¿En un Módulo? Asumiendo que sí, sólo agrega Public:
1
2
3
4
5
6
7
8
9
Public Sub MonteCarlo()
n = Range(“Number”)
Hits = 0
For Index = 1 To n
If Rnd ^ 2 + Rnd ^ 2 < 1 _
Then Hits = Hits + 1
Next Index
Range("Estimate") = 4 * Hits / n
End Sub

Saludos.
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
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 de compilacion no se ha definido sub o function

Publicado por Antoni Masana (563 intervenciones) el 15/02/2024 20:24:16
Revisa las comillas dobles de la fila 2. Son diferentes, las de la fila 7 son correctas, las de la fila 2 no lo son.

1
2
3
4
5
6
7
8
Sub MonteCarlo()
    n = Range(“Number”)
    Hits = 0
    For Index = 1 To n
        If Rnd ^ 2 + Rnd ^ 2 < 1 Then Hits = Hits + 1
    Next Index
    Range("Estimate") = 4 * Hits / n
End Sub

Un consejo: cuando una macro a de leer o escribir en una celda es bueno especificar la hoja. Si tienes una sola hoja todo funciona perfectamente pero si tienes más de una y ejecutas la macro en otra hoja tendrás errores y problemas.


Saludos.
\\//
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