|
|
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Помогите пож. Когда Excel закрыт перед запуском то выполняется код без проблем, если открыт то подрывается во время копирования листа. Что не так, помогите пожалуйста. Проект в студии vb6. Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 13:18 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
32sasha, Код как таковой ужасен, и нет времени его править. Там вы пытаетесь поместить различные задачи в одну процедуру. Разделите их, разведите по разным функциям. Подумайте, что произойдет, если ваш OPEN.TXT будет пуст. Избавьтесь от лишних меток и Exit Sub внутри тела процедуры. Сделайте одну поддержку ошибок. Как-то так: Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. И попробуйте заменить Windows на Workbooks. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 16:17 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
32sasha, Не забывайте, что сбои в коде для Excel часто оставляют висеть процесс Excel (и не один) невидимо, с непредсказуемыми последствиями. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 16:20 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Еще, мне кажется, что раз вы декларируете Код: plaintext 1. то нет причин декларировать Код: plaintext Все равно вам требутся в проекте библиотека Excel. А раз так, то и пропадает нужда в GetObject и CreateObject. И тогда можно вводить раннее связывание со всеми его преимуществами: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 16:38 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Спасибо, за ответ. Но подрывается на Sht.Copy After:=Workbooks(CommonFile.Name).Sheets(CommonFile.Sheets.Count) во время копирования листа с одного файла в исходный. и выдает ошибку Subscript out of range (Error 9) OPEN.TXT пустым быть не должен и не будет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 18:36 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
32sasha, Скорее всего, у вас там более чем один процесс Excel. А вы явно не указываете, внутри какого процесса вы копируете листы вашей книги. Касательно резонирования о файле OPEN.TXТ: на таких рассуждениях поддержка ошибок не строится. Она строится на самой возможности как таковой их возникновения. Точно также, как и оборона. Это, между прочим, первая ошибка, которую я получил, тестируя ваш код. Успехов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 19:04 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Другой возможной причиной может являться то, что код берет полный путь к книге, а надо брать лишь ее имя, чтобы подставить в переменную. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 19:08 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Уберите хотя бы Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 19:11 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
32sasha, Проверьте, есть ли в вашем objExcel такая книга как Workbooks(CommonFile.Name) с таким листом как Sheets(CommonFile.Sheets.Count) каждый раз, когда у вас висит неконтролируемый процесс Excel в дополнение к процессу, в котором вы вводите objExcel. Успехов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 19:19 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Убрал некоторый декларации, оставил Dim objExcel As New Excel.Application Выходит что запускается отдельно еще одна копия Excel ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 19:26 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
32sasha, То-то и оно. :0) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 19:31 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
А, вас напрягает, что запускается еще одна копия Excel из-за New? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 19:33 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Если вам непременно надо использовать имеющийся процесс, и вы не хотите создавать свой, то тогда введите отдельную функцию для этого: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 19:55 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Может надо сначала активировать книгу, лист, раз процесс уже имелся. Поставьте перед Workbooks mobjExcel. Посмотрите, что получится. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 20:07 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
32sasha, Как-то так, в дополнение к моему последнему коду: Код: plaintext 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. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 21:25 |
|
||
|
Код подрывается при открытом Excel
|
|||
|---|---|---|---|
|
#18+
Там в вашем OPEN.TXT нужно, чтобы не было пустой последней строки (не нажимайте ENTER после последней строки с именем файла). Иначе - ошибка. Вот вам, кстати, и пример. И еще, эти две строки Код: plaintext 1. можно заменить одной: Код: plaintext и эта строка не нужна: Код: plaintext ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.04.2009, 22:02 |
|
||
|
|

start [/forum/topic.php?fid=60&msg=35924541&tid=2161153]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
78ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 225ms |
| total: | 393ms |

| 0 / 0 |
