Следующий вопрос:
Имеется лист екселя, открывается юзерформ, на ней несколько текстбоксов, куда пользователь вводит суммы(руб.коп.). Нужно запретить туда вводить буквы, это я решил так:
Код: Выделить всё
Private Sub TextBox5_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
If InStr("0123456789,", Chr(KeyAscii)) = 0 Then KeyAscii = 0
End Sub
Также нужно что-то делать с разделителем - могут ведь ввести и точку и запятую и дефис. Может можно делать как-нибудь автозамену при вводе? Также еще нужно проконтролировать чтобы не поставили второй разделитель, например: 125,23,23
На лист данные вводятся вот такими строками:
Код: Выделить всё
Sheets("Данные").Cells(Str, sto) = VBA.Format(UserForm1.TextBox4, "#0.#0")
т.е. с округлением справился вроде как, а что с остальными ограничениями? Или как-нибудь можно короче это сделать?