Как назначить значение свойству, в котором имя свойства указывается во время выполнения в VBA? - PullRequest
2 голосов
/ 16 ноября 2009

Я пытаюсь создать рабочий лист, который создает список значений, которые будут использоваться для инициализации значений экземпляра класса.

Например, у меня может быть следующее в моей рабочей таблице инициализации:

Property Name              Value
StartingCol                A
StartingRow                11

Затем я бы создал класс, который будет анализировать этот рабочий лист и предоставлять мне перечислимое число, которое я мог бы использовать для инициализации свойств экземпляра объекта. Тем не менее, я не уверен, как я мог бы указать значение свойства во время выполнения, используя строку, а не указав это явно в коде. Вы можете получить представление о том, чего я пытаюсь достичь, с помощью кода ниже:

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

Есть ли способ использовать строку во время выполнения для указания имени свойства вместо явного указания в коде?

1 Ответ

2 голосов
/ 16 ноября 2009

Найдите функцию CallByName в справке VBA. Вы должны быть в состоянии сделать что-то вроде:

Call CallByName(sp,strFieldName,vbLet,strFieldNameValue)

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