Новости:

Прикрепить к сообщению можно только файлы xls, gif, jpg, rar, zip,7z, bas, frm, cls, doc размером до 150 Кб.

Главное меню

Парсинг даты и вставка в отдельные ячейки

Автор Allaire, 04.05.2012, 10:43

« назад - далее »

Allaire

Добрый день уважаемые форумцы! Требуется ваша помошь. В общем есть печатная форма, довольно сложная, мне нужно автоматизировать ввод данных, для этого я собственно создал в экселе второй воркшит, где разместил поля для заполнения данных, которые смаплены на поля формы (примитивный мапинг поля делается просто, со второго воркшита делается копирование, на первом воркшите с формой - специальная вставка -> 'Paste special -> link'), т.о. данные, меняющиеся на втором воркшите автоматом отображаются на первом. Однако есть случаи (и таких случаев большинство) когда вставка, к примеру даты, должна происходить в несколько ячеек одновременно (т.е. в печатной форме/бланке, дата вписывается в отдельные клетки/ячейки), т.е. получается каждую цифру даты нужно вставить в отдельную ячейку - сделать это стандартными средствами не вижу как, т.е. предполагаю что должен быть макрос, для парсинга даты (или других подобных данных) и вставки ее в печатную форму. Кто делал что-то подобно подскажите наиболее простой вариант, т.к. это самое малое что нужно сделать, буду признателен за макрос или подсказки. Также интересует ваше менение по поводу автоматизации ввода/заполнения печатных форм, срадствами самого экселя, поделитесь опытом.

Wasilic

Здравствуйте.
Allaire, на 9-м посту уже забыл п.2 правил_форума?
Цитироватькаждую цифру даты нужно вставить в отдельную ячейку
Дата в А1.
Sub Кнопка1_щелкнуть()
   X = Range("A1").Text
   K = 2
   For I = 1 To Len(X)
     Cells(1, K) = Mid(X, I, 1)
     K = K + 1
   Next
End Sub
Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Allaire

Извиняюсь, пожалуйста см. вложенный файл.
Не совсем понятно как вставить дату, к примеру с воркшита "Data_entry" в строку (№7) с датой на вокшите "Printed_form". Не очень хотелось бы делать это по нажатию на кнопку, т.к. как видно из печатной формы таких вставок будет целая туча... хотя если вариантов нет...

MCH

#3
а чем Вам Ваше же решение с ПСТР не нравится?

=ПСТР(ТЕКСТ($L$7;"ДДММГГГГ");1;1)

MCH


Wasilic

Цитата: Allaire от 04.05.2012, 12:51
как вставить дату, к примеру с воркшита "Data_entry" в строку (№7) с датой на вокшите "Printed_form". Не очень хотелось бы делать это по нажатию на кнопку,
Если силой мысли то так  :)
=ПСТР(Data_entry!$B$2;1;1) и т.д.

Может и я на что сгожусь ... Если сгодился, можете меня по+благодарить+.

Allaire

Вроде работает как нужно, большое спасибо за помощь!

Allaire

Цитата: Wasilic от 04.05.2012, 15:22
Цитата: Allaire от 04.05.2012, 12:51
как вставить дату, к примеру с воркшита "Data_entry" в строку (№7) с датой на вокшите "Printed_form". Не очень хотелось бы делать это по нажатию на кнопку,
Если силой мысли то так  :)
=ПСТР(Data_entry!$B$2;1;1) и т.д.

Добрый день коллеги! Столкнулся с еще одной проблемой касательно даты. Как я описывал выше, есть два листа - дата с одного "парсится" по одной цифре и мапится на другой лист в отдельные ячейки. Прблема в том, что ячейка для ввода имеет тип "дата", раньше я эотого не заметил, но если оставить ячейку пустой, то в поля на втором листе вставится 00011900. Я так понимаю - ячейка с типом "дата" имеет значение по умолчанию или как? Формула для парсинга даты имеет вид:
=ЕСЛИ(ПСТР(ТЕКСТ('Форма ввода'!J44, "dd-mm-yyyy"),1,1) = "","",ПСТР(ТЕКСТ('Форма ввода'!J44, "dd-mm-yyyy"),1,1))
Естественно она вставляет чушь, т.к. значения в поле даты никогда не ровняются пустой строке. Как побороть эту проблему?

Serge 007

В ячейке А1 пусто. В В1 напишите =А1. Что получите? Правильно, ноль. Хотя в ячейке А1 пусто. Естественно никакого отношения к формату даты это не имеет, просто Вы ноль преобразуете в этот формат.
Решение: =ЕСЛИ(ЕПУСТО(А1);"";А1)
Бесплатная помощь: www.excelworld.ru
Платная помощь: sergeyizotov@excelworld.ru
Ю-money: 41001419691823 | WMR:126292472390

Allaire

Цитата: Serge 007 от 28.05.2012, 14:26
В ячейке А1 пусто. В В1 напишите =А1. Что получите? Правильно, ноль. Хотя в ячейке А1 пусто. Естественно никакого отношения к формату даты это не имеет, просто Вы ноль преобразуете в этот формат.
Решение: =ЕСЛИ(ЕПУСТО(А1);"";А1)
Я написал "решение" в виде:
=ЕСЛИ(ТЕКСТ('Форма ввода'!J44, "dd.mm.yyyy") = "00.01.1900","",ПСТР(ТЕКСТ('Форма ввода'!J44, "dd-mm-yyyy"),1,1))
Выглядит сомнительно даже для меня самого, тем более я не уверен, что дефолтное значение ячейки с датой будет всегда 00011900.

Ваш вариант сейчас попробую, спасибо!

Allaire

Цитата: Serge 007 от 28.05.2012, 14:26
Решение: =ЕСЛИ(ЕПУСТО(А1);"";А1)
Работает отлично, спасибо!