Модераторы: mihanik
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Чтение другой книги Excel, данные из одной книги в другую. 
:(
    Опции темы
Bugmaker
Дата 12.10.2010, 13:34 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 27.6.2008

Репутация: нет
Всего: нет



Доброго времени суток, товарищи.

Есть следующая функция

Код

Function GetOrdersInfo()
Dim SomeFile As String
Dim SomeWorkBook As Workbook
Dim OrdersInfo() As String
Dim FileNames() As String
Dim i As Integer
Dim j As Integer
Dim k As Integer
ReDim OrdersInfo(1 To 10000, 1 To 3)


    Application.FileSearch.LookIn = "C:\orders"                          
    Application.FileSearch.SearchSubFolders = False
    Application.FileSearch.FileType = msoFileTypeExcelWorkbooks
    Application.FileSearch.LastModified = msoLastModifiedAnyTime

        If Application.FileSearch.Execute > 0 Then
                ReDim FileNames(1 To Application.FileSearch.FoundFiles.Count)
         For i = 1 To Application.FileSearch.FoundFiles.Count
                 FileNames(i) = Application.FileSearch.FoundFiles(i)
        Next i
  End If


    Dim OrdersCount As Integer
    OrdersCount = 0
    Dim iCount As Integer
    iCount = 1
    For k = 1 To Application.FileSearch.FoundFiles.Count
    
    SomeFile = FileNames(k)                                              
    Set SomeWorkBook = Workbooks.Open(SomeFile)
   OrdersCount = SomeWorkBook.ActiveSheet.Range("A:A").Cells(Rows.Count, 1).End(xlUp).Row   
    
    Dim z As Integer
    z = 1
                        For i = iCount To iCount + OrdersCount
                        OrdersInfo(i, 1) = SomeWorkBook.ActiveSheet.Cells(z, 2).value             
                        OrdersInfo(i, 2) = SomeWorkBook.ActiveSheet.Cells(z, 5).value
                        OrdersInfo(i, 3) = SomeWorkBook.ActiveSheet.Cells(z, 6).value
                        z = z + 1
                        Next i
    
  iCount = iCount + OrdersCount

SomeWorkBook.Close                             
Set SomeWorkBook = Nothing
Next k



GetOrdersInfo = OrdersInfo()

End Function


Она возвращает массив, в котором содержатся записи, взятые из 2,5 и 6 столбцов всех книг эксель по адресу  "C:\orders".

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

Может я велосипед изобретаю и есть вообще более простые способы?

PM MAIL   Вверх
Akina
Дата 12.10.2010, 13:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



1) Только проверкой для каждой отдельной книги, попадает она в нужный интервал или нет.
2) http://connectionstrings.com/excel


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Bugmaker
Дата 12.10.2010, 16:24 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 27.6.2008

Репутация: нет
Всего: нет



А как получить дату создания книги? 
За ссылку на строки подключения огромное спасибо!
PM MAIL   Вверх
Akina
Дата 12.10.2010, 16:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Советчик
****


Профиль
Группа: Модератор
Сообщений: 20581
Регистрация: 8.4.2004
Где: Зеленоград

Репутация: 26
Всего: 454



Цитата(Bugmaker @  12.10.2010,  17:24 Найти цитируемый пост)
как получить дату создания книги? 

 smile у файловой системы спросить... или свойства файла глянуть... 
Кстати, они они не совпадают... ни по смыслу, ни тем более по значению.


--------------------
 О(б)суждение моих действий - в соответствующей теме, пожалуйста. Или в РМ. И высшая инстанция - Администрация форума.

PM MAIL WWW ICQ Jabber   Вверх
Bugmaker
Дата 12.10.2010, 16:27 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 161
Регистрация: 27.6.2008

Репутация: нет
Всего: нет



Можно пример на vba ?? 
PM MAIL   Вверх
dorogoyIV
Дата 12.10.2010, 22:35 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1503
Регистрация: 26.3.2007

Репутация: 4
Всего: 46



Код

 FileSystem.FileDateTime(PathName As String)

PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "Программирование, связанное с MS Office"
mihanik staruha

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами



  • Несанкционированная реклама на форуме запрещена
  • Пожалуйста, давайте своим темам осмысленный, информативный заголовок. Вопль "Помогите!" таковым не является.
  • Чем полнее и яснее Вы изложите проблему, тем быстрее мы её решим.
  • Оставляйте свои записи в "Книге отзывов о работе администрации"
  • А вот тут лежит FAQ нашего подраздела


Если Вам понравилась атмосфера форума, заходите к нам чаще!
С уважением mihanik и staruha.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Программирование, связанное с MS Office | Следующая тема »


 




[ Время генерации скрипта: 0.0491 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.