Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 30.07.2013, 19:39   #1
lobot
 
Регистрация: 23.08.2012
Сообщений: 8
По умолчанию сохранение даты при копировании из др. книги

Всем доброго времени суток!
Есть макрос позволяющий последовательно копировать данные из закрытой книги. Все хорошо работает только в исходном файле в первом столбце дата в текстовом формате, в итоге после копированияи дата отображается не верно. Подскажите как поправить код для корректного отображения данных. Заранее спасибо.
Вложения
Тип файла: rar Пример.rar (46.6 Кб, 12 просмотров)
lobot вне форума Ответить с цитированием
Старый 30.07.2013, 21:20   #2
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

для ячеек столбца A (лист "Комплект") установите предварительно текстовый формат
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 31.07.2013, 08:35   #3
lobot
 
Регистрация: 23.08.2012
Сообщений: 8
По умолчанию

Step_UA , спасибо большое, но в данном случае я буду иметь тот же текст, а мне нужно именно в формате даты. Подскажите, что можно сделать.
lobot вне форума Ответить с цитированием
Старый 31.07.2013, 09:22   #4
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Цитата:
Сообщение от lobot Посмотреть сообщение
... после копированияи дата отображается не верно
предварительно установите требуемый формат даты для ячеек столбца А ...
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 31.07.2013, 09:31   #5
lobot
 
Регистрация: 23.08.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
предварительно установите требуемый формат даты для ячеек столбца А ...
Step_UA
если просто поменять формат ячеек, то вместо 1.04.2013 получаем 04.01.2013
lobot вне форума Ответить с цитированием
Старый 31.07.2013, 09:43   #6
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

При записи вида 01/04/13 указывается месяц/день/год
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 31.07.2013, 09:55   #7
lobot
 
Регистрация: 23.08.2012
Сообщений: 8
По умолчанию

Цитата:
Сообщение от Step_UA Посмотреть сообщение
При записи вида 01/04/13 указывается месяц/день/год
а если преобразовать в дату то день-мес-год
Изображения
Тип файла: jpg форматдаты.jpg (31.1 Кб, 117 просмотров)
lobot вне форума Ответить с цитированием
Старый 31.07.2013, 09:58   #8
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Код:
Sub копирование()
  Dim a, i&, ii&, vFile
    With Application.FileDialog(msoFileDialogFilePicker)
        .AllowMultiSelect = True
        If .Show = False Then Exit Sub
        For Each vFile In .SelectedItems
            With Workbooks.Open(Filename:=vFile, AddToMRU:=False)
                With .Sheets(1)
                    a = .Range(.[A2], .Range("b" & .Rows.Count).End(xlUp)).Value
                End With
                .Close SaveChanges:=False
            End With
            ii = 0
            For i = 1 To UBound(a)
                If a(i, 2) <> "расходники" Then
                    ii = ii + 1
                    a(ii, 1) = Join(Split(a(i, 1), "/"), ".")
                    a(ii, 2) = a(i, 2)
                End If
            Next
            If ii > 0 Then
                With ThisWorkbook.Sheets(1)
                    .Range("A" & .Rows.Count).End(xlUp).Offset(1).Resize(ii, 2).Value = a
                End With
            End If
        Next vFile
    End With
End Sub
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Старый 31.07.2013, 13:29   #9
lobot
 
Регистрация: 23.08.2012
Сообщений: 8
По умолчанию

Step_UA, спасибо большое за помощь!, но формат все равно остается текстовым, у меня не получается потом привязать данные по месяцам формулами Наверно нужно будет с исходными данными бороться, в части отображения дат.
lobot вне форума Ответить с цитированием
Старый 31.07.2013, 13:52   #10
Step_UA
Форумчанин
 
Аватар для Step_UA
 
Регистрация: 09.06.2011
Сообщений: 388
По умолчанию

Для отображения года из 4 цифр замените
Код:
a(ii, 1) = Join(Split(a(i, 1), "/"), ".")
на
a(ii, 1) = CDate(Join(Split(a(i, 1), "/"), "."))
... для года представленого 2 цифрами - формулы нормально работают:
Изображения
Тип файла: jpg Безымянный.jpg (15.3 Кб, 60 просмотров)
на неконкретные вопросы даю неконкретные ответы ...
Step_UA вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Проблема при копировании листов Shada Microsoft Office Excel 5 04.11.2012 15:24
Несхождения при копировании файлов Drobot Общие вопросы C/C++ 3 21.09.2010 15:39
проблема с изменением формата даты при копировании из CSV формата в эксель mars56 Microsoft Office Excel 4 16.03.2010 09:50
Сохранение копии книги при ее закрытии. Busine2009 Microsoft Office Excel 17 17.06.2009 04:36
Почему ошибка при копировании? valerij Microsoft Office Excel 8 02.05.2009 01:49