2015-10-28 2 views
-1

У меня есть с VBA декларации некоторой константы, такие какVBA изменение кода во время работы

Public Const prev = "" 

Моя идея заключается в том, что код VBA будет обновлять/изменить эту постоянную пред каждый код был бежать. В прошлом я выяснил решение этого дела, но, к сожалению, я забыл его сохранить. Поэтому я уверен, что мы сможем сделать это с VBA. Но теперь я не могу найти его снова.

+0

Почему объявить что-то как 'постоянная 'если вы хотите его изменить? – rotgers

+0

Причина: Я использую обработчик событий Workbook для запуска моего кода vba. И константа сохранит результат из последнего прогона и передаст его в код vba при включении триггера – dtk142

+0

Вы не можете изменить значение константы во время выполнения. Вместо этого объявите обычную переменную; 'Public prev as String'. – rotgers

ответ

0

, если вы хотите изменить значение, объявить его как

public prev as {your data type} 

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

+0

Причина Я использую обработчик событий рабочей книги для запуска моего кода vba. И константа сохранит результат из последнего прогона и передаст его в код vba, когда включается триггер – dtk142

+0

, затем сохраните переменные на листе или в файле или в реестре. –

0

finnally Я нашел способ

Application.VBE.CodePanes(1).CodeModule.ReplaceLine 1, "Public Const prev = " & strValue 

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

+0

Я думаю, что ваш вопрос был занижен, потому что вы пытались достичь своей цели очень сложным образом. Написание значения для ячейки или файла было бы проще и не противоречило бы изменениям вашей структуры кода. – Verzweifler

+0

Я знаю, что это будет проще, но это требование. Я не тот, кто использует этот код. – dtk142