Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA(?) : Импорт данных excel to excel / 4 сообщений из 4, страница 1 из 1
30.07.2009, 00:23:43
    #36116720
Anton_vba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA(?) : Импорт данных excel to excel
Всем привет!

Есть разные способы импортировать данные из .xls в ексель.
Какой подойдет лучше всего в данном случае:

Есть excel файл (temp.xls), в который время от времени выгружаются данные из базы данных (это менять нельзя)
где-то не более 300 строк (хотя желатьельно чтобы работало и при нескольких тысячах - иногда бывает и такое)

Есть другой файл (file.xls), в который нужно импортировать все данные из temp.xls(sheet1) на sheet2.
sheet2 файла.xls отформатирована должным образом и формат менять нельзя.

То есть, надо автоматизировать действия:
1. Открыть temp.xls в Read-only
2. Select sheet1
3. Select All
4. Copy
5. Открыть file.xls
6. Select sheet2
7. Select All
8. Paste
9. Закрыть temp.xls
(10). Сообщение про то, удалить ли из памяти большое количество данных - да, удалить (No, don't keep вроде бы. Но это не важно)

И главное: temp.xls во время импорта должен быть невидимый.
Нажатие на кнопку из file.xls

Теоретически, Data - Import External Data - почти то, но:
1) Как сделать ReadOnly?
2) Временами теряется соединение и всякие глюки происходят
3) Хотелось бы средствами VBA

Какие есть идеи?
Хотелось бы легкий, быстрый и красивый способ.

Заранее благодарю!
...
Рейтинг: 0 / 0
30.07.2009, 02:07:36
    #36116756
KL (XL)
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA(?) : Импорт данных excel to excel
...
Рейтинг: 0 / 0
11.08.2009, 22:23:00
    #36138207
Anton_vba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA(?) : Импорт данных excel to excel
KL (XL) , Спасибо!

У меня еще один вопрос возник. Может быть, кто-нибудь сталкивался.
Программа (не excel), а другая.. генерирует XLSX файл (для 2007 excel).
Но в системе стоит 2003 офис.
Установлен Microsoft Office Compatibility Pack.
Зайлы XLSX запускаются после того как их на лету переконвертирует этот Pack. Сохранять их он тоже умеет.

А теперь вопрос: как открыть в 2003 excel файл xlsx при помощи VBA?

Использую такое код для импорта (кусок для создания соединения):

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
If Val(Application.Version) <  12  Then
   szConnect = "Provider=Microsoft.Jet.OLEDB.4.0;" & _
   "Data Source=" & SourceFile & ";" & _
   "Extended Properties=""Excel 8.0;HDR=No"";"
Else
   szConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
   "Data Source=" & SourceFile & ";" & _
   "Extended Properties=""Excel 12.0;HDR=No"";"
End If

Но он либо для импорта xls в версии до 2003 (включительно) либо для импорта xlsx в 2007.
Мне же надо xlsx в 2003.

Попутно было бы неплохо и наоборот: xls в 2007 и выше

Нужно в Excel 2003 засунуть Microsoft.ACE.OLEDB.12.0?
...
Рейтинг: 0 / 0
11.08.2009, 23:00:50
    #36138240
Anton_vba
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VBA(?) : Импорт данных excel to excel
Пардон, все работает. Была ошибка в коде.
2003-й excel воспринимает
Код: plaintext
1.
2.
3.
   szConnect = "Provider=Microsoft.ACE.OLEDB.12.0;" & _
   "Data Source=" & SourceFile & ";" & _
   "Extended Properties=""Excel 12.0;HDR=No"";"
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / VBA(?) : Импорт данных excel to excel / 4 сообщений из 4, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]