Есть ли способ сопоставить свойства класса во время выполнения в VBA? - PullRequest
0 голосов
/ 27 июня 2019

Я пытаюсь сопоставить полученное свойство одного класса с тем же свойством другого класса во время выполнения. После некоторых исследований я обнаружил, что в .net есть такая вещь, как «Отражение», но я использую только VBA. Просто для фона: я автоматизирую приложение, используя этот код, поэтому некоторые объекты открыты, а другие нет.

В настоящее время я использую свойство полученного класса "Description" и использую его для поиска того же свойства в целевом классе.

Set TargetVar = hySetOperations.Item(j).TargetVariable 'This is a RealVariable a property that refers to a class
Set SourceObj =hySetOperations.Item(j).SourceObject  'This is also a RealVariable
'In order to import variable from source object, we r gonna use TargetVariable description and truncate space, and use it (This might not work if description
'is different than actual name of the variable)
Dim RealVarString As String
RealVarString = TargetVar.Description
'Trim spaces
RealVarString = Replace (RealVarString, " ", "")
Set SourceVar = CallByName ( SourceObj, RealVarString, vbGet)

На самом деле это работает в большинстве случаев, поскольку «описание» обычно совпадает с именем свойства, но с пробелами. Однако в некоторых случаях это не тот случай, когда дела идут на юг.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...