У меня есть пользовательская форма, созданная с помощью Excel VBA, где пользователь вводит некоторые данные, а затем сохраняет их на листе с помощью кнопки. Некоторые поля, которые должен заполнить пользователь, должны иметь только числовые значения c. Чтобы разрешить только числа в этих текстовых полях, я использую следующий код:
Private Sub txtShift1_KeyPress(ByVal KeyAscii As MSForms.ReturnInteger)
Debug.Print KeyAscii
If KeyAscii >= 48 And KeyAscii <= 57 Then
Debug.Print "number"
Else
Debug.Print "other"
KeyAscii = 0
End If
End Sub
Однако есть еще одно изменение, которое я хотел бы сделать. Пользователь обычно заполняет эти поля, используя цифровую клавиатуру c, которая имеет точку в качестве десятичного разделителя. В моем регионе запятая используется как десятичный разделитель, и я не могу изменить эту конфигурацию на каждом компьютере, который будет использоваться. Итак, я ищу фрагмент кода, который регистрирует символ точки как запятую при вводе в специальное текстовое поле c. Что-то вроде того, что делает калькулятор Windows 10. Если у вас есть запятые в качестве десятичных разделителей и вы набираете точку на клавиатуре numeri c при ее использовании, вы получаете запятую вместо точки, чтобы легко выполнять вычисления. KeyAscii
свойство, но я так и не понял. Приветствуются любые предложения.