Тема: Какое значение считывается из ячейки листа Excel быстрей: .Text или .Value?
Много приходится считывать из таблиц Excel.
Какое значение считывается из ячейки листа Excel быстрей: .Text или .Value? Может быть кто-то анализировал?
Информационный портал для профессионалов в области САПР
Вы не вошли. Пожалуйста, войдите или зарегистрируйтесь.
Форумы CADUser → Программирование → VBA → Какое значение считывается из ячейки листа Excel быстрей: .Text или .Value?
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Много приходится считывать из таблиц Excel.
Какое значение считывается из ячейки листа Excel быстрей: .Text или .Value? Может быть кто-то анализировал?
> brigval
Проверь сам
Для Value:
Sub testval() Dim a a = Timer Dim s As Variant Dim cel As Range For Each cel In Worksheets(1).Range("A1:B1000") s = cel.Value Next MsgBox Timer - a Debug.Print Timer - a End Sub '-> Result 1,5625
Для текста:
Sub testtext() Dim a a = Timer Dim s As Variant Dim cel As Range For Each cel In Worksheets(1).Range("A1:B1000") s = cel.Text Next MsgBox Timer - a Debug.Print Timer - a End Sub '-> Result 3,125
Текст в 2 раза медленней, видимо из-за встроенного
преобразования типов
~'J'~
> Fatty
Спасибо.
Я правда после вопроса и сам собразил, что могу проверить.
Sub eee() Dim i As Long Dim stext As String Dim tmr As Single tmr = Timer With ThisWorkbook.ActiveSheet For i = 0 To 1000000 stext = .Range("D7").Value Next MsgBox Timer - tmr tmr = Timer For i = 0 To 1000000 stext = .Range("D7").Text Next MsgBox Timer - tmr End With End Sub
При счывании из одной ячейки считывание Text на 50% медленне, чем считывание Value. То есть составляет, примерно, 3/2 от времени для Value
Страницы 1
Чтобы отправить ответ, вы должны войти или зарегистрироваться
Форумы CADUser → Программирование → VBA → Какое значение считывается из ячейки листа Excel быстрей: .Text или .Value?
Форум работает на PunBB, при поддержке Informer Technologies, Inc