2015-04-04 2 views
0

Я создал пользовательскую форму с кучей текстовых полей, которые я хочу ограничить только удвоением. Вместо добавления IsNumeric() для каждого из текстовых полей есть ли что-то вроде функции Userform_Change(), где я могу передать введенный текст, или я могу что-то изменить в свойствах текстового поля, чтобы разрешать номера?Ограничение ввода в текстовые поля пользовательской формы VBA только на номера

Также, если проверка числа хороша, значение в текстовом поле все еще является строкой или Excel знает, что это число, когда я копирую его в ячейку на листе?

ответ

-1

Текстовые поля могут быть настроены только для приема номеров (и паролей). Например, Блокнот представляет собой большое текстовое поле. В Windows они называются Edit Controls (и Rich Edit Controls поддерживают почти все, что делает Edit Control).

Так стиль Окно

ES_NUMBER Позволяет только цифры, чтобы ввести в поле редактирования. Обратите внимание, что даже с помощью этого набора все еще можно вставить цифры без изменения в элемент управления редактирования. Чтобы изменить этот стиль после создания элемента управления, используйте SetWindowLong.

См. Заявление Declare в VBA.

+0

Вы можете сделать это способом Windows или по-своему. – Serenity

+0

Я не совсем уверен, что понимаю. Итак, как вы это делаете в VBA. Являются ли ES_NUMBER и setwindowlong свойствами текстовых полей? – KingKong