
Мне нужно разработать инструмент, который обеспечивает строгий формат некоторой таблицы. Поля в этой таблице следуют заданным шаблонам, таким как число:число (11:20. 2:00), согласованная дата (11/20/2012, но не зависящая от локали), одно целое число, одно значение с плавающей точкой и т. д.
Таблица должна отклонять неправильные значения или подсвечивать их красным. Кроме того, пользователь должен иметь возможность свободно перемещаться по таблице и редактировать ее (разрешение добавлять данные только через какую-то форму во всплывающем диалоге выглядит ужасным решением).
Прежде чем начать писать пользовательское приложение, я хотел бы спросить, насколько сложно реализовать это требование в MS Excel, используя шаблоны документов? Я немного погуглил, но прямого попадания не нашел.
Также было бы приемлемо использовать какой-либо другой инструмент, который легко поддерживает эту функцию.
Расширение:здесьтакже кажется примером того, как использовать регулярные выражения.
решение1
Этого можно легко добиться, используя Data Validation
функцию для ячейки ввода:
Выберите ячейку(и), к которой вы хотите применить формат, и перейдите на Data
вкладку -> Data Tools
-> Data Validation
. Здесь вы можете установить ограничения, а также сообщение об ошибке и подсказки. Если ограничение сложнее, чем параметры по умолчанию, вы можете создать пользовательские формулы проверки. Например, если вы хотите, чтобы ячейка A1 начиналась только с «Test», выберите A1 и введите =LEFT(A1,4)="Test"
как пользовательскую формулу. Пока формула возвращает TRUE, ввод принимается, в противном случае он отклоняется.
Кроме того, убедитесь, что форматируете ячейки в соответствии с желаемым форматом (например, данные). Таким образом, даже если пользователь вводит данные 01/01/13
, они могут быть отображены как 01/01/2013
и проверка проходит успешно.
И последнее, но не менее важное: убедитесь, что вы защитили рабочий лист: снимите флажок «Заблокировано» (в диалоговом окне форматирования ячеек) для всех ячеек ввода, а затем защитите рабочий лист (щелкните правой кнопкой мыши по имени рабочего листа).