J'essaie de créer une feuille de calcul qui crée une liste de valeurs qui seront utilisées pour initialiser les valeurs d'une classe instanciée.Comment attribuer une valeur à une propriété où le nom de la propriété est fourni lors de l'exécution dans VBA?
Par exemple, je pourrais avoir ce qui suit dans ma feuille de calcul d'initialisation:
Property Name Value
StartingCol A
StartingRow 11
je puis créer une classe qui parse cette feuille de calcul et me fournir un enumberable que je pourrais utiliser pour initialiser les propriétés d'un objet instancié. Cependant, je ne sais pas comment je pourrais spécifier la valeur de la propriété lors de l'exécution en utilisant une chaîne plutôt que de la spécifier explicitement dans le code. Vous pouvez avoir une idée de ce que je suis en train d'accomplir dans le code ci-dessous:
Sub test_PropertyAssignment()
Dim sp As SheetParser
Dim strFieldName As String
Dim strFieldNameValue As String
Set sp = New SheetParser
'The property name is supplied explicitly'
sp.StartingCol = "B"
strFieldName = "StartingCol"
strFieldNameValue = "B"
sp.[how can I supply strFieldName to specify the property?] = strFieldNameValue 'Will not Work'
End Sub
Est-il possible d'utiliser une chaîne à l'exécution pour spécifier le nom de la propriété plutôt que de spécifier explicitement dans le code?
Cela fonctionnait très bien pour des missions de propriété Let. Maintenant, j'essaie de comprendre comment le faire fonctionner pour les propriétés Set sur des objets qui n'ont pas encore été instanciés. Une autre question SO. –
Vous avez absolument besoin d'une instance d'objet réelle pour utiliser CallByName(). – jtolle