VBA macros problema Property let y get

Estoy aprendiendo a crear objetos en VBA de excel, y tengo un problema en un ejercicio que no he podido resolver, ya busque en la red pero no encuentro nada, quisiera saber si alguien me puede ayudar, el error que me marca es "El tipo de argumento de ByRef no coincide"

De antemano les agradezco

Option Explicit
Private z As Integer
Public Property Let ValorA(w As Integer, x As Integer, y As Integer, d As Integer)
    z = w + x + y
    Debug.Print z
End Property
Public Property Get ValorA(w As Integer, x As Integer, y As Integer) As Integer
    ValorA = z 'Nos se si el Get este bien 
End Property
'De donde llamo a el objeto:
Sub porbandoA()
    Dim ejem2 As New ClaseEjemplo
    ejem2.ValorA(5, 3, 6) = d
    Debug. Print ejem2. ValorA(d) ' Cuando escribo esto me marca el error
    'Si no ingreso esto funciona bien, pero necesito regresar el valor resultado
End Sub

1 Respuesta

Respuesta
1

Ya deduje la respuesta y quedaría así

'OBJETO-ValorA------Modulo de Clase---------------------------------------------------------------
Option Explicit
Private e As Integer
Public Property Let ValorA(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer, ByRef d As Integer)
    e = a + b + c
End Property
Public Property Get ValorA(ByVal a As Integer, ByVal b As Integer, ByVal c As Integer) As Integer
    ValorA = e
End Property
'OBJETO -ValorA----Modulo de Clase-------------------------------------------------------------------
Dim ejem2 As New ClaseEjemplo
Sub porbandoA()
    Dim za, zb, zc, zd As Integer
    za = 100
    zb = 100
    zc = 100
    ejem2.ValorA(za, zb, zc) = zd
    Debug.Print ejem2.ValorA(za, zb, zc)
End Sub

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas