2016-09-07 5 views
0

Я создал пользовательский формат VBA, целью которого является позволить пользователю обновлять записи, хранящиеся в этой книге. При инициализации UserForm заполняет определенные значения ячеек в разных текстовых полях, пользователю предлагается добавить определенную информацию в другие текстовые поля, а при нажатии кнопки «Далее» новая информация добавляется к таблице данных и следующей запись заполняет UserForm.Excel VBA Userform Global Counter

В настоящее время я достигаю этого, сохраняя подсчет текущей строки (currentRow) и после нажатия кнопки «Далее» currentRow = currentRow + 1. Это отлично работает.

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

If Range(Cells(currentRow, 3).Address).Value = "Planning" Then 
    PlanningUserForm.Show 
Else 
... rest of code ... 

Это работает, но я изо всех сил поддерживать счетчик раз этот новый Инициализируется функция PlanningUserForm. Мне нужно, чтобы он знал текущее значение currentRow, чтобы он мог отображать правильные значения ячеек в своих текстовых полях.

Я объявила переменную currentRow как общедоступную, но она, похоже, не переносит значение в новую пользовательскую форму. Это возможно? Или я прошу слишком много Excel?

Большое спасибо

Matt

ответ

1

Если вы объявили currentRow как общественности, то в PlanningUserForm вы можете получить доступ к значению currentRow в UserForm1.currentRow где UserForm1 является UserForm, где вы объявили currentRow как общественное

+0

Спасибо Арун! Это сделало трюк. – mhurstsmith

1

Вы всегда можете использовать реестр. Его можно использовать и во многих других вещах в будущем.

SaveSetting "Your macro", "Values", "CurrentRow", currentRow 

Теперь currentRow сохраняется в вашем реестре.

Теперь в вашем PlanningUserForm:

currentRow = GetSetting("Your macro", "Values", "CurrentRow") 

и вы получили сохраненное значение из реестра.

У меня плохой опыт с глобальными переменными, поэтому я предлагаю реестр.

+0

Спасибо @Andreas я буду нести это в виду. Поскольку эту книгу нужно будет перемещать по нескольким пользователям, я думаю, что буду придерживаться глобальных переменных. Спасибо, тем не менее! – mhurstsmith

Смежные вопросы