Мне нужно отформатировать некоторые ячейки Excel, чтобы позволить вводить только валюту (десятичную точку). Некоторые сотрудники, заполняющие форму, вводят двоеточие (:) вместо десятичной точки, что приводит к неверному итогу. Можно ли отформатировать или ограничить ячейку таким образом, чтобы при появлении любого символа, кроме десятичной точки (.), Появлялось сообщение об ошибке? Спасибо за помощь.

2 ответа2

0

Хотя это не самый элегантный способ сделать это, и я рекомендую вам тщательно его протестировать. Это похоже на работу. Отрегулируйте это по мере необходимости для проблемного столбца ввода. Теперь он настроен на диапазон, а не на весь столбец, поэтому в столбце будут работать формулы.

Сначала установите формат ячейки, чтобы он автоматически не преобразовывался во что-то для вас. Установите формат ячейки в соответствии с тем, что фактически вводится с помощью события «Изменить выделение».

    Private Sub Worksheet_SelectionChange(ByVal Target As Range)
      Set rng2check = Range("A1:A10") 'you can adjust this how you wish
       If Not Intersect(ActiveCell, rng2check) Is Nothing Then ActiveCell.NumberFormat = "@"
      Set rng2check = Nothing
    End Sub

Затем проверьте ввод для двоеточий и замените их, преобразуйте значение в Double или Currency и установите окончательный формат ячейки в General или Currency, в зависимости от того, что вам подходит.

Private Sub Worksheet_Change(ByVal Target As Range)
 On Error Resume Next 'on an error leave events enabled
 Application.EnableEvents = False
   inputCheck = Target.Text
   inputCheck = Replace(inputCheck, ":", ".")
   inputCheck = CDbl(inputCheck)
    'MsgBox (inputCheck)
   Range(Target.Address).NumberFormat = "General"
  Range(Target.Address) = inputCheck
 Application.EnableEvents = True
End Sub

Кто-то может указать лучший способ сделать это. Изменение формата ячейки на текстовый сначала не может быть лучшим решением, но оно достигает того, чего вы хотите. Конечно, хорошая проверка данных может быть хорошей идеей

Вы можете расширить это, чтобы заменить других персонажей, кроме двоеточий, я уверен.

0

Вы можете использовать проверку данных, где вы указываете, что единственное (-ые) значение (-я), приемлемое (ые) для вашей ячейки, может быть получено из предварительно определенного диапазона списка. Вы можете скрыть этот диапазон где угодно. Он может содержать любые значения, которые вам нравятся. В вашем случае, это, вероятно, будет одна ячейка, содержащая точку.

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .