Страница: 1 |
Страница: 1 |
Вопрос: Как ускорить считывание ячеек из Excel в VB
Добавлено: 06.05.09 13:52
Автор вопроса: Aleksandr | ICQ: 226010443
Необходимо считать ячейки из Excel в массив Vb. Делаю примерно так:
Dim i as Integer
Dim strTabData(1 To 1000) As String
Dim wBook As Excel.Workbook
Set exapp = CreateObject("Excel.Application")
exapp.Visible = True
Set wBook = exapp.Workbooks.Open("d:\1.xls")
For i = 1 To 1000
strTabData(i) = wBook.Sheets(1).Cells(i, "A")
Next i
Проблема в том что скорость считывания около 1000 строк в минуту. Есть ли возможность как нибудь ускорить этот процесс? А то файл очень большой и полное считывание займет где то сутки.
Ответы
Всего ответов: 5
Номер ответа: 1
Автор ответа:
Smith
ICQ: adamis@list.ru
Вопросов: 153
Ответов: 3632
Профиль | | #1
Добавлено: 06.05.09 14:00
У меня тоже самое, в это весь эксель, он слишком интерактивный чтоб быть еще и быстрым.
Номер ответа: 2
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #2
Добавлено: 06.05.09 16:24
попробуйте Application.ScreenUpdate=False, и вместо А в Cells ставьте смещение ячейки (0), сделайте его невидимым...
Номер ответа: 3
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #3
Добавлено: 06.05.09 16:25
а еще лучше - попробуйте работать с ним ч/з АДО рекордсет - может быть, что скорость и увеличится
Номер ответа: 4
Автор ответа:
fAndOrIn
Вопросов: 5
Ответов: 344
Профиль | | #4
Добавлено: 07.05.09 19:17
Aleksandr, попробуйте так:
Номер ответа: 5
Автор ответа:
VerhoLom
Вопросов: 20
Ответов: 285
Профиль | | #5
Добавлено: 11.05.09 15:56
Попробуйте вот этот код: в итоге Вы получите двумерный массив, обращаясь по первому измерению которого (столбцы) можно вторым измерением идти по строкам...
Для общего развития по этой теме почитайте вот это:
http://www.askit.ru/custom/vba_office/m9/09_04_excel_connection.htm
http://www.w3schools.com/ado/met_rs_getrows.asp