2017-07-11 5 views
1

J'ai une définition de classe très simple. classe Sheetwriter est définie comme suit:Erreur VBA: Les définitions de procédures de propriété pour la même propriété sont incohérentes ou la procédure de propriété possède un paramètre facultatif.

Option Explicit 

'Works off of the ActiveCell 
'Helps you write data into the cells 


Private pCornerCell As String 


Public Property Get CornerCell() 

    CornerCell = pCornerCell 

End Property 


Public Property Let CornerCell(Value As String) 

    pCornerCell = Value 

    Range(Value).Select 

End Property 

je reçois une erreur de compilation que je ne comprends pas. Les définitions de procédures de propriété pour la même propriété sont incohérentes ou la procédure de propriété a un paramètre facultatif. Qu'est-ce que je fais de mal?

Répondre

1
Public Property Get CornerCell() 

C'est un retour Variant implicite, puisque aucun type de retour n'a été spécifié.

Public Property Get CornerCell() As String 

C'est le retour String que le compilateur voit dans le membre Property Let et fixe votre problème.

FWIW, que Range(Value).Select déclaration ne fait pas partie là-dedans du tout, et vous ne voulez de travailler en dehors de la cellule active et saupoudrez Select et Activate déclarations partout.

Voir How to avoid using Select in Excel VBA macros pour des conseils pour éviter cela.