Как удалить userform в vba excel

Delete a UserForm and add a New UserForm in Excel VBA

What I would like to do is Delete a Userform and replace it with an updated Userform using VBA for Excel.

I exported the original Userform, made my changes, and now would like to replace the original with the new Userform. Both Userforms have the same names. I’m hoping, by keeping the UserForm names the same the button that activates the Userform won’t be damaged.

I have am going to have the VBA loop through all the workbooks and do this

Any and all help and pointers are greatly appreciated ahead of time.

Как очистить UserForm текстовое поле без вызова функции _Change?

У меня есть UserForm в Excel с текстовыми полями, предназначенными только для числовых данных. Я хочу, чтобы очистить текстовое поле, когда он обнаруживает плохую запись и выдает сообщение об ошибке, но я не хочу иметь функцию _Change текстового поля под названием снова или же сообщение появляется в два раз, потому что я изменить текст «». Я не видел, встроенный в ясной функции .. есть лучший способ сделать это?

Задан 11/11/2015 в 11:25 2015-11-11 11:25
источник пользователем FredGooch На других языках.

предотвратить пользователю вводить альфа-символы:

Надеюсь это поможет! -Hugues

Простой способ для достижения этой цели является использование _Exit() функции:

Это вызывает, как только текстовое поле теряет фокус.

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

Вы можете сделать так, как показано здесь

Вы можете добавить эту строку в самом начале

Кроме того, я нашел, что это еще короче и интересно:

Самое интересное в том , что он принимает , чтобы ввести такие вещи , как».2" ,„-3.2“, а также „5E3“ , последний случай быть не допускаются другими методами!

Превращение его в петлю в то время как можно удалить только последний плохой напечатанный символ (ы):

Объявите глобальную логический и в начале каждого подраздела, добавить, если заявление, которое выходит подлодку, если логическое значение верно. Когда вы получите сообщение об ошибке, установите значение истинно, и ничего не случится. Затем установите его ложь снова.

* Заслуга mikerickson из mrexcel.com

Вы не можете остановить событие _Changed от стрельбы. Я бы посоветовал вам создать резервную копию на пару шагов в дизайне и спросить, если вы можете получить работу без необходимости очистить его в первую очередь. В Visual FoxPro мы должны установить «формат» на 9999.99 и он будет автоматически запретить пользователь вводить алфавитные символы, но я думаю, что конкретное поле было уникальным для FP. Вы можете подключить событие _Changed и выполнить свою собственную проверку там. Я хотел бы предложить не фильтровать отдельные ключевые штрихи, но проверка на всё значение каждый раз, когда она изменяется.

. что потребует поддержания переменной резервного копирования для предыдущего значения, но я уверен, что вы можете понять это. Там могут быть некоторые крайние случаи, когда функции преобразования строк число VB в не точно соответствуют, как экспоненциальной нотации, как вы упомянули, так что вам, возможно, потребуется более сложный контроль, чем это. Во всяком случае, это сделает невозможным даже ввести неправильное значение. Она также обеспечивает лучший пользовательский опыт, потому что обратная связь более быстрая и интуитивно. Вы можете заметить, что значение изменяется в случае _Changed, который должен поднять красный флаг колено рывков в вашем уме о бесконечных циклах. Если вы сделаете это, убедитесь, что ваше предыдущее значение уже подтверждено, имея в виду, что начальное значение будет пустой строкой. Таким образом, рекурсивный вызов будет пропускать через блок If таким образом завершить петлю.

Ссылка на основную публикацию