|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Здравствуйте, подскажите что можно предпринять, таблицу за 12 часов обрабатывает только 6000 строк, ужас делов то узнать в таблице чтобы.... указано в тексте TextError, код: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32.
Спасибо ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2013, 08:01 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15.
... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2013, 09:48 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, понял For Each r In - рулит? странно почему??? ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2013, 10:36 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Потому что последовательный проход по коллекции итератором быстрее, чем обращение к произвольному элементу по индексу. С массивами наоборот, хотя разница гораздо менее значительна. Кроме того, обращение .Rows(q).Range происходило не один раз за итерацию, а целых семь. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2013, 10:45 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, ясность полная, как бы это не забыть... щас Шокер скажет, что надо записать в тетрадку... :) ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2013, 10:49 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, спасибо, вопрос жесть последовательный проход по коллекции итератором быстрее, чем обращение к произвольному элементу по индексу что такое итератор?? блин не знаю... ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2013, 11:53 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
For x In — переменная x называется итератором, объектом, в котором содержится ссылка на очередной элемент коллекции/массива for x = — переменная x называется индексом, порядковым номером произволного элемента коллекции/массива ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2013, 12:19 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, познавательно, спасибо!!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
05.02.2013, 12:36 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
я так понял, что если таблица обычная из одного столбца, тогда вместо Код: vbnet 1.
указываем Код: vbnet 1.
Но здесь Код: vbnet 1.
или Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 07:49 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
как бы понятно, на Код: vbnet 1.
ругается ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 07:51 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
ещё одна не понятка вылезла, в строке wdYellow = (g.Range.HighlightColorIndex = wdYellow) Код: vbnet 1.
и работает в строке Код: vbnet 1.
отрабатывает как = True в момент когда это не так, в чём ошибка??? ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 08:56 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Ну вот опять фирменные проблемы с формальной логикой от Эндрю. Наверное тут таки эффективней использовать тетрадку. Иерархия экселя такова: Excel.Application -> Workbooks -> Workbook -> Worksheets -> Worksheet -> Rows -> Row -> Cells -> Cell. Никаких исключений вроде этого я так понял, что если таблица обычная из одного столбцане допускается. Поэтому For Each Workbook In Workbook s , Worksheet In Worksheet s и т.д, никаких Cell In Rows. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 10:16 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, какие Worksheet In Worksheets если ветка: Оптимизировать обработку таблицы Ворда ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 10:33 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
катастрофа, Код: vbnet 1. 2. 3. 4.
... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 10:41 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
катастрофаAntonariy, какие Worksheet In Worksheets если ветка: Оптимизировать обработку таблицы Ворда Пофиг. В ворде другие объекты тот же принцип. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 10:45 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
ПЕНСИОНЕРКА, нашёл проблемс нужно было не называть переменную wdYellow а хотя бы wdYelloww ну или русскими словами ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 10:59 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
В каком контексте использовано выражение Код: vbnet 1.
? Если прямо так вставить, то Compile error: Assignment to constant not permitted. Файл с таблицей и кодом в студию. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 11:00 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Код: vbnet 1.
Это лажа какая-то. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 11:04 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy Код: vbnet 1.
Это лажа какая-то. конечно, вот это wdYelloww = (g.Range.HighlightColorIndex = wdYellow) - другое дело ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 11:24 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
катастрофаAntonariy Код: vbnet 1.
Это лажа какая-то. конечно, вот это wdYelloww = (g.Range.HighlightColorIndex = wdYellow) - другое делоПотому что не используешь option explicit, а вместе с ним тоже лажа. ... |
|||
:
Нравится:
Не нравится:
|
|||
06.02.2013, 11:48 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, уже использую Код: vbnet 1.
, но не пойму чтобы реализовать мысль если таблица обычная из одного столбца, тогда вместо Dim g As Row указываем Dim g As Cell кстати она верная?? получаю ошибку объект не поддерживает этот метод на строке Код: vbnet 1.
как нужно? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 11:33 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
кстати она верная??Нет, она тупая. Она дважды тупая, потому что один раз я уже об этом сказал: 13882195 Код: vbnet 1.
Первая таблица сама должна угадать, какую из ее коллекций ты хочешь посмотреть? Толстый намек: Tables -> Table.Rows -> Row.Cells -> Cell. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 13:00 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, For Each g In ActiveDocument.Tables(1).Range.Cells так? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 13:44 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Нет. Читай эту строчку до потери сна и аппетита, до умопомрачения: Tables -> Table.Rows -> Row.Cells -> Cell ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 13:54 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, Tables -> Table.Rows -> Row.Cells -> Cell ну а где тут скобки () для вставки индексов? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 14:01 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
катастрофаAntonariy, Tables -> Table.Rows -> Row.Cells -> Cell ну а где тут скобки () для вставки индексов?Заодно правильно расставь скобки. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 14:17 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, я не знаю, в других кодах ничего подобного не замечал.... вообще новость, поэтому придётся гадать Tables -> Table.Rows -> Row.Cells -> Cell Код: vbnet 1.
так? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 14:22 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Если тебе нужна первая ячейка каждой строки, то правильно. Только g в такой записи должно быть числом. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 14:32 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
AntonariyЕсли тебе нужна первая ячейка каждой строки, то правильно. Только g в такой записи должно быть числом. я же говорю: если таблица Ворда обычная из одного столбца Dim g As Cell For Each g In ActiveDocument.Tables(1).Rows(g).Cells(1) и что станет g числом??? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 16:06 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
катастрофаAntonariy, я не знаю, в других кодах ничего подобного не замечал.... вообще новость, поэтому придётся гадать Tables -> Table.Rows -> Row.Cells -> Cell Код: vbnet 1.
так?авторЕсли тебе нужна первая ячейка каждой строки, то правильно. Только g в такой записи должно быть числом. А ничего, что в ворде не Cell s , а Cell ? :)) ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 16:25 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
скукотища, даже если исправить по Вашему совету А ничего, что в ворде не Cells, а Cell ? :)) выделяет .Rows - тип мис матч ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 16:45 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
скукотищаА ничего, что в ворде не Cell s , а Cell ? :)) Property Cells As Cells read-only Member of Word.Row Что не так? катастрофаDim g As Cell For Each g In ActiveDocument.Tables(1).Rows(g).Cells(1) и что станет g числом?? выделяет .Rows - тип мис матчЯ не по-русски выражаюсь? Или ты специально издеваешься? Двести раз говорили, tables(xxx), rows(xxx) и cells(xxx) принимают индексы, а ты что туда пихаешь блеать? Ну что за тупица, терпения не хватает. ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 17:07 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Antonariy, делаю так: For Each g In ActiveDocument.Tables(1).Rows(g).Cells(1) пихаю Dim g As Cell и получаю тоже самое: выделяет .Rows - тип мис матч ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 17:25 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
ты САМ написал Tables(1) - это по твоему что означает? Почему ты не пишешь Tables(g), к примеру??? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 17:36 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Shocker.Pro, Почему ты не пишешь Tables(g), к примеру - потому, что я соображаю, что обращаюсь к первой таблице ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 17:43 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
катастрофаобращаюсь к первой таблицеА какой строке ты обращаешься, когда пишешь Rows(g) ??? Ты сам аналогию провести не можешь? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 17:53 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Shocker.Pro, так бред получится выше строки For Each g In ActiveDocument.Tables(1).Rows(g).Cells(1) строить конструкцию Фор еах а ниже g = g + 1, масло масляное.... ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 18:13 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
сейчас остановился на Код: vbnet 1. 2.
таблицу с 15000 строк обрабатывает за 25 минут, ещё лучше можно??????? как??????? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 18:21 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Ты обпределить ЧТО ИМЕННО ты хочешь перебрать в цикле? Все ячейки таблицы? Все ячейки строки? Все ячейки всех таблиц? Одну ячейку каждой строки? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 18:23 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Shocker.Pro, таблица из одного столбца, значит все строки или все ячейки для меня это одно и тоже ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 18:25 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Так и перебирай Cells, нафига тебе Rows? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 18:26 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
Shocker.ProТак и перебирай Cells, нафига тебе Rows? так это For Each g In ActiveDocument.Tables(1).Range.Cells разве не так?? ... |
|||
:
Нравится:
Не нравится:
|
|||
08.02.2013, 18:30 |
|
Оптимизировать обработку таблицы Ворда
|
|||
---|---|---|---|
#18+
ещё вариант - С таблицами скорости прибавляет цикл Do...Loop вместо For Each, это верно???? и пример: Код: vbnet 1. 2. 3. 4. 5. 6.
... |
|||
:
Нравится:
Не нравится:
|
|||
13.02.2013, 18:44 |
|
|
start [/forum/topic.php?all=1&fid=60&tid=2157152]: |
0ms |
get settings: |
10ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
131ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
65ms |
get tp. blocked users: |
2ms |
others: | 13ms |
total: | 258ms |
0 / 0 |