1

Можно ли автоматически задать значение ячейки «£ 20,00», если пользователь вводит значение выше «£ 20,00» и если введенное значение меньше «£ 20,00», будет отображаться фактическое введенное значение.

Например:

В ячейке A1 пользователь вводит £ 12,50, а в ячейке отображается £ 12,50.

В ячейке A2 пользователь вводит £ 21,50, но в ячейке отображается только £ 20,00.

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

Любая помощь будет отличной!

3 ответа3

2

Вы можете использовать собственный формат чисел для этого.

[<20]£00.00;[>=20]"£20.00"

Выберите ячейки, к которым это относится, и щелкните правой кнопкой мыши формат ячейки.

На вкладке номера выберите Пользовательский и используйте формат выше.

2

Поместите следующий макрос события рабочего листа в область кода рабочего листа:

Private Sub Worksheet_Change(ByVal Target As Range)
    Dim CheckCells As Range, r As Range, rINT As Range
    Set CheckCells = Range("A2")
    Set rINT = Intersect(CheckCells, Target)

    If rINT Is Nothing Then Exit Sub

    Application.EnableEvents = False
        For Each r In rINT
            If r.Value > 20 Then r.Value = 20
        Next r
    Application.EnableEvents = False
End Sub

Он будет контролировать входы в ячейку A2 и ограничивать их до 20. Если вы хотите наложить те же ограничения на другие ячейки, вы можете сделать это, изменив одну строку кода.

Поскольку это код рабочего листа, его очень легко установить и использовать автоматически:

  1. щелкните правой кнопкой мыши имя вкладки в нижней части окна Excel
  2. выберите View Code - откроется окно VBE
  3. вставьте материал и закройте окно VBE

Если у вас есть какие-либо проблемы, сначала попробуйте на пробную версию.

Если вы сохраните книгу, макрос будет сохранен вместе с ней. Если вы используете версию Excel более поздней, чем в 2003 году, вы должны сохранить файл как .xlsm, а не .xlsx

Чтобы удалить макрос:

  1. вызвать окна VBE, как указано выше
  2. очистить код
  3. закройте окно VBE

Чтобы узнать больше о макросах в целом, смотрите:

http://www.mvps.org/dmcritchie/excel/getstarted.htm

а также

http://msdn.microsoft.com/en-us/library/ee814735(v=office.14).aspx

Чтобы узнать больше о макросах событий (код листа), см .:

http://www.mvps.org/dmcritchie/excel/event.htm

Макросы должны быть включены, чтобы это работало!

2

Это немного неудобно, но если вы не хотите использовать макросы для изменения фактического значения, вы можете использовать пользовательский формат, чтобы остановить ячейку ввода данных, отображающую значения выше £ 20 (как в ответе @ PeterH), но используйте скрытая ячейка для расчета значения, которое вы хотите использовать, например,

=MIN(A2, 20)

В качестве альтернативы, если вам нужно использовать ограниченное значение только в нескольких местах, вы можете включить аналогичную формулу в место, где вы используете значение.

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