|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
Всем привет. Простая задача: вывести часть данных из Аксеса в Екселевский файл 1.xls В начале модуля формы описаны переменные, на кнопку toEXCEL повешен такой код. Код: 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.
При первом нажатии кнопки все работает прекрасно - данные перебрасываются в файл и форматируются. При повторном нажатии кнопки все ломается на строке Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2019, 19:31 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
ИВП, Возникает ошибка Run-time error '1004' Method 'Columns' of object '_Global' failed После выбора кнопки End все опять идет хорошо. Чего не хватает в конце процедуры? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2019, 19:32 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
Откуда Access знать, что такое Columns? ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2019, 19:36 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
Predeclared, Там же открывается Екселевский файл. И первый раз все работает. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.07.2019, 19:50 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
ИВПColumns("C:C").Select 'Здесь возникает ошибка при повторном вызове подпрограммы. [/src] Может так?: Код: vbnet 1.
Попробуйте. Column это несколько другой объект, у него часть свойств вообще к Excel не относиться. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 00:34 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
ИВПPredeclared, Там же открывается Екселевский файл. И первый раз все работает. Конечно это это печально, что первый раз все работает, поскольку даёт вам основание настаивать на чём-то своем. Для вас было бы несомненно лучше, чтобы не работало вообще ни разу, поскольку не оставляло бы сомнений в наличии ошибки. Но может быть всё таки хотя бы попробовать прислушаться к тому что говорит Predeclared? Это не больно. А проверить наличие ошибки легко - после вашего первого раза, на котором все работает, почти наверно, после Код: vbnet 1. 2.
Excel остается висящим в памяти. Проверьте в диспетчере задач. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 00:52 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
С функциями Экселя из Акцесса можно работать ТОЛЬКО через переменные с объектами Экселя - через объекты xl* в вашем случае. Любое выражение, которое не содержит такую переменную работать не будет. Т.е. в ваем случае это будет Код: vbnet 1.
И старайтесь не использовать Select и Activate без реальной надобности. Я понимаю, что макрорекордер так пишет, но это место потенциальных ошибок, котрые очень трудно выявить. Заменяйте все на переменные с объектами. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 04:08 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
boobyExcel остается висящим в памяти. Почему остается? Там же есть Код: vbnet 1.
перед ним. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 04:10 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
MrShinПочему остается?потому-что поднимаются другие экземпляры Excel. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 05:01 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
Панургпотому-что поднимаются другие экземпляры Excel. Так поднимается xlApp, он же и гасится. Что именно может остаться? ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 09:00 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
MrShinТак поднимается xlApp, он же и гасится. Что именно может остаться? Это вы написали после того, как открыли диспетчер задач и не нашли там задачи Excel? MrShinColumns("C:C").Select 'Здесь возникает ошибка при повторном вызове подпрограммы. Если такое написать в модуле Ёкселя, то неявно используется метод ActiveSheet. Т.к. всё вокруг родное, то всё прекрасно. Если вы используете такое во внешней среде, то, видимо, поднимается вся цепочка Приложение - активная книга - активный лист. Это костыль и странно, что вообще так работает. Некоторое время назад другой собрат вопрошал о таких же проблемах после успешного применения Set rng = CALLS(1,1), но один раз. Кстати, а зачем вам Select? Вы еще расскажите, что активно используете объект Selection. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 09:35 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
MrShin, Код: vbnet 1. 2. 3.
Вот в этом месте появляется новый экземпляр Excel. Он не "гасится" и остаётся висеть. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 09:37 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
ПанургВот в этом месте появляется новый экземпляр Excel. Офигеть! Вот это засада от МС! Не знал об этом, всегда только переменные использую, проблем не было. Зачем они так сделали, не понимаю. Это же огромное поле для непредсказуемого поведения приложений. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 13:16 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
Не ожидал такой активности мемберов начиная с четырех утра )))) Спасибо всем. boobyКонечно это печально, что первый раз все работает, поскольку даёт вам основание настаивать на чём-то своем. Печально, что не работает второй раз. Не вижу, где я на чем-то своем бы настаивал . boobyДля вас было бы несомненно лучше, чтобы не работало вообще ни разу, поскольку не оставляло бы сомнений в наличии ошибки. Лучше было бы, чтобы работало каждый раз. boobyНо может быть всё таки хотя бы попробовать прислушаться к тому что говорит Predeclared? обязательно прислушаюсь, только непонятно к чему. Он сказал, что Аксес не знает, что такое Columns; я сказал, что первый раз как-то знает. boobyExcel остается висящим в памяти. Проверьте в диспетчере задач. Вы скажите, что делать-то, если висит? MrSin, Панург, Кривцов Анатолий! Спасибо!!! ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 14:03 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
MrShin, извините за опечатку в Вашем нике ((((((((((((((( ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 14:08 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
ИВПВы скажите, что делать-то, если висит? Так вроде бы объяснили что нужно. Не используйте функции Экселя без предварительно созданных переменных. Т.е. вместо Код: vbnet 1.
нужно писать Код: vbnet 1.
Эта команда выделит столбец С на листе РасЭ Код: vbnet 1.
... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 14:33 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
Упс, xlSheet0.Select был лишним в предыдущем сообщении. Ну и в своей программе Select лучше не использовать ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 14:35 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
MrShin, Спасибо, заменил. Все работает Такая запись была сделана при использовании макрорекордера. Кстати, после Код: vbnet 1.
никакой Ексел в памяти не висит, так что уважаемый booby не прав, что беда из-за "висения". ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 14:52 |
|
Снова запись в Ексел
|
|||
---|---|---|---|
#18+
ИВПникакой Ексел в памяти не висит Сейчас не висит, а вот если вставить команду Код: vbnet 1.
то висеть будет, ибо она, как оказалось, запускает еще один экземпляр экселя, сам только что проверил, писали об этом выше. Да, и перестает он висеть после команды xlApp.Quit ... |
|||
:
Нравится:
Не нравится:
|
|||
12.07.2019, 15:29 |
|
|
start [/forum/topic.php?fid=45&fpage=30&tid=1610593]: |
0ms |
get settings: |
10ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
31ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
60ms |
get tp. blocked users: |
2ms |
others: | 15ms |
total: | 156ms |
0 / 0 |