Новые сообщения [новые:0]
Дайджест
Горячие темы
Избранное [новые:0]
Форумы
Пользователи
Статистика
Статистика нагрузки
Мод. лог
Поиск
|
31.07.2013, 17:44
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
Господа, доброго времени суток. Есть проблема с макросом, макрос сравнивает первый выбранный файл со следующими двумя выбранными файлами. Результатом являются строки из файла1 которых нет ни файле2 ни в файле3. Проблема в том, что на маленьких объемах(до 10 000 строк) отрабатывает нормально и корректно(хотя иногда и долго минут 15-20). Но если количество строк заваливает за 100 000 то макрос работает бесконечно не выдавая результата. Пробовал оставить на ночь результата не. Нужна помощь в диагностике проблемы, собственно сам код: Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70.
Буду очень признателен за помощь, в VBA не профи, сам не разберусь. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.07.2013, 18:37
|
|||
---|---|---|---|
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
Сергей_Ро, 1. При работе с отдельно взятыми ячейками, Excel очень сильно тормозит, тем более на большом объеме данных. 2. Ваша задача должна и может выполняться за секунды и поможет вам в этом внутренний запрос SQL. Если не получится разобраться самостоятельно, то пишите, поможем. 3. На будущее, вот это поможет слегка ускорить процесс Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
31.07.2013, 18:40
|
|||
---|---|---|---|
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
Сергей_Ро, В догонку, смотря какая версия Excel, но если не ошибаюсь, то до 2007 больше 65 535 строк обрабатывать было нельзя. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2013, 07:32
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
lbppbСергей_Ро, 2. Ваша задача должна и может выполняться за секунды и поможет вам в этом внутренний запрос SQL. Если не получится разобраться самостоятельно, то пишите, поможем. А как в макросе 3 файла указывать? В коннекшнстринг и в запросе? Если б листы сравнивались в 1 книге - понятно, а тут как? ----- Не люблю ProgressOpenEdge. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2013, 07:58
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
при такой реализации, как минимум, использовать Exit Do Код: vbnet 1. 2. 3.
как вариант использовать Find, пример попробую попозже сваять ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2013, 08:30
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
через Find где-то так: Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2013, 09:17
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
Первый код немного не верный, вот правильный код: Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74.
И если можно подскажите где почитать про вложенный запрос SQL? ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2013, 09:25
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
Сергей_Ро Код: vbnet 1.
Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2013, 10:09
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
грязный комплектовщикА как в макросе 3 файла указывать? В коннекшнстринг и в запросе? Если б листы сравнивались в 1 книге - понятно, а тут как? Код: vbnet 1. 2. 3. 4. 5. 6. 7. 8. 9. 10.
... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2013, 10:54
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
Попробовал следующий код: Код: 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. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52. 53. 54. 55. 56. 57. 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84.
Та же шляпа, залипает на обработке большого количества строк. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
01.08.2013, 13:19
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
Сергей_Ро... И если можно подскажите где почитать про вложенный запрос SQL к данным экселя? тут почитать http://support.microsoft.com/kb/257819/ru тут сам запрос 14646773 ... |
|||
:
Нравится:
Не нравится:
|
|||
|
02.08.2013, 11:26
|
|||
---|---|---|---|
|
|||
Бесконечная работа макроса при объемах больше 100 000 строк. |
|||
#18+
Проблема решена использование объектов типа Dictionary, загоняем информацию из файлов в словари и далее работаем со словарями. Макрос отрабатывает за секунды при огромных объемах. Всем спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
|
|
start [/forum/topic.php?fid=61&tablet=1&tid=2174627]: |
0ms |
get settings: |
9ms |
get forum list: |
13ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
49ms |
get topic data: |
47ms |
get forum data: |
3ms |
get page messages: |
82ms |
get tp. blocked users: |
2ms |
others: | 336ms |
total: | 547ms |
0 / 0 |