2011-01-23 2 views
1

Мой googlefu не помог мне, и я пришел к вам за помощью:Возможна ли переменная переменная?

Является ли VBA способным иметь Variable Variables, как PHP? Я знаю, что в PHP вы можете ждать, чтобы объявить переменную, используя $$var.

Можно ли это сделать в VBA? например, есть способ, который позволяет сказать: я прочитал целый массив из 1000 строк, и каждая строка, которую я получаю, может объявить переменную с этой строкой, например, если 80-й элемент массива называется STO, как я могу сообщить VBA создать переменную с именем sto?

+2

Я не знаю, возможно ли это, но я знаю, что переменные переменные являются одним из тех редких случаев, которые абсолютно не имеют ничего, кроме бессмысленных и вредных. Вместо этого используйте словаряря. – delnan

ответ

3

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

Редактировать (pst): Если вам нужно получить доступ к значениям по заданному имени a dictionary can be used. Выдержка/пример:

Dim d As dictionary 
Set d = New dictionary 
d("STO") = arr(80) 'or whatever it is in VBA 
+0

Итак, тогда следующий вопрос ... есть ли словарь/поддержка хэша в VBA? Хотя это звучит так, как будто Array/List здесь подходит, словарь является общей заменой «переменных переменных». –

+0

См. Http://stackoverflow.com/questions/1309689/hash-table-associative-array-in-vba – ThiefMaster

1

Ну, вы можете ... вроде.

Путем манипулирования VBE вы можете добавлять строки в свою программу, поэтому определяете переменные так, как хотите. Конечно, это не простой способ, и я не рекомендую его. Это просто для вашей информации.

Here is a tutorial.

Больше примеров можно найти прибегая к помощи "VBE insertlines"

НТН!