91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
||||||
1 | ||||||
Ошибка при работе с Excel21.05.2016, 18:52. Показов 3067. Ответов 26
Метки нет Все метки)
(
Определяю количество занятых ячеек (ячеек с информацией) в столбце файл-Excel, точнее номер последнего занятого столбца. При выполнении следующей команды:
0
|
21.05.2016, 18:52 | |
21.05.2016, 18:52 | |
Ответы с готовыми решениями:
26
Ошибка при работе с Excel
Ошибка при работе с excel |
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
|
21.05.2016, 20:20 | 2 |
то что вы делаете дает ли эксель сделать руками? дает ли он это сделать в макросе на вба? если нет - очевидно это нельзя сделать.
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|
21.05.2016, 20:23 [ТС] | 3 |
Да, дает. Проверял. Код:
ActiveCell.SpecialCells(xlLastCell).Select Пробовал вместо Activate писать Select. Тоже не помогло
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
|
21.05.2016, 20:32 | 4 |
akrufar, руками дает а в вба нет? может вы в вба пишите не то что делаете руками? через запись макроса пробовали?
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|
21.05.2016, 20:37 [ТС] | 5 |
Да, через макросы дает. И руками тоже дает (ctrl+end). Все получается. А через Си не дает
![]() Код VBA как раз из макроса скопировал (ActiveCell.SpecialCells(xlLastCell).Select)
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
||||||
21.05.2016, 20:45 | 6 | |||||
ничуть ваш код на этот код не похож. по идее там
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|
21.05.2016, 20:50 [ТС] | 7 |
xlLastCell = 11. OleProcedure("Select") пробовал, разницы нет.
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
|
21.05.2016, 20:52 | 8 |
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|
21.05.2016, 20:58 [ТС] | 9 |
Тогда билдер ругается и говорит EOleSysError with message "Неизвестное имя" и указывает на эту строку
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
|
21.05.2016, 21:06 | 10 |
akrufar, очевидно вы не у того объекта её запрашиваете - вот во второй строке он же не ругается?
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|||||||||||
21.05.2016, 21:11 [ТС] | 11 | ||||||||||
Разобрался, надо немного исправить код на такой:
EOleSysError with message "Ошибка" Добавлено через 2 минуты А еще вот на этой строке стопорится и стрелку показывает при выводе этой ошибки:
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
|
21.05.2016, 21:33 | 12 |
akrufar, если работает в вба то работает и тут иного сложно представить спешиалцелл это точно свойство-массив или функция?
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|
21.05.2016, 21:38 [ТС] | 13 |
Самое интересное, что оно работает на простых листах, но не на защищенных.
Вот этот вопрос я не понял. В VBA я не силен. Начинающий. Вычитал, что ActiveCell возвращает диапазон ячеек. А судя по тому как макрос работает SpecialCells с 11 кодом выдает только одну ячейку.
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
|
21.05.2016, 21:52 | 14 |
akrufar, нажмите в вба ф2 полазайте по его объектам. Если вызовы одинаковые то действие кода вба должно быть таким же как на C++ - там чудес нет и скрытых тайн
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|
22.05.2016, 15:48 [ТС] | 15 |
А можете данный код запустить у себя на машине? Используя файл с защищенным листом. может опять проблема на стороне моей среды разработки?
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
|
22.05.2016, 21:18 | 16 |
akrufar, у меня макрос вба при попытке исполнить ваш код на защищённом листе говорит что этого на таких листах делать нельзя
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|
23.05.2016, 08:09 [ТС] | 17 |
Странно. У меня свободно исполняет.
А есть тогда другой метод вычислить последнюю занятую строку и столбец в Excel на защищенном листе?
0
|
91 / 3 / 2
Регистрация: 19.05.2016
Сообщений: 38
|
|
23.05.2016, 10:01 [ТС] | 19 |
Недостаток в том, что надо явно указывать номер столбца, придется перебирать каждый отдельно. Так что не подходит. попробую другие методы
0
|
Модератор
![]() 3401 / 2172 / 353
Регистрация: 13.01.2012
Сообщений: 8,426
|
|
23.05.2016, 10:21 | 20 |
логика подсказывает что вы должны его знать или у вас документ неустановленной формы который распознает нейросеть)? тогда перебирайте все ячейки на листе) по ссылке прямо сказано что тот способ который вы применяли ранее не работает на защищенных листах
0
|
23.05.2016, 10:21 | |
23.05.2016, 10:21 | |
Помогаю со студенческими работами здесь
20
Странная ошибка при работе с Excel
Ошибка в приложении при работе с excel Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |
|
![]() |
Опции темы | |
|
Новые блоги и статьи
![]() |
||||
Laravel 11: новые возможности, гайд по обновлению
Wired 18.02.2025
Laravel 11 - это новая масштабная версия одного из самых популярных PHP-фреймворков, выпущенная в марте 2024 года. Эта версия продолжает традицию внедрения передовых технологий и методологий. . .
|
Миграции в Laravel
Wired 18.02.2025
Разработка веб-приложений на Laravel неразрывно связана с управлением структурой базы данных. При работе над проектом часто возникает необходимость вносить изменения в схему базы данных - добавлять. . .
|
Аутентификация в Laravel
Wired 18.02.2025
В современном мире веб-разработки безопасность пользовательских данных становится критически важным аспектом любого приложения. Laravel, как один из самых популярных PHP-фреймворков, предоставляет. . .
|
Laravel или Symfony: что лучше для старта?
Wired 18.02.2025
В веб-разработке выбор правильного фреймворка может стать определяющим фактором успеха проекта. Особенно это актуально для PHP - одного из самых распространенных языков программирования, где Laravel. . .
|
Что нового в Laravel 12
Wired 18.02.2025
С момента своего появления в 2011 году Laravel постоянно развивается, внедряя инновационные решения и совершенствуя существующие возможности. В начале 2025 года ожидается выход Laravel 12 - новой. . .
|
Роутер в Laravel: как работать с маршрутами
Wired 18.02.2025
Маршрутизация - один из основополагающих элементов любого веб-приложения на Laravel, определяющий как приложение отвечает на HTTP-запросы к различным URL-адресам. По сути, роутинг - это механизм. . .
|
Интеграция шаблона Bootstrap в Laravel PHP
Wired 18.02.2025
Разработка веб-приложений в современном мире требует не только надежного бэкенда, но и привлекательного, отзывчивого интерфейса. Laravel, как один из самых популярных PHP-фреймворков, отлично. . .
|
Использование контроллеров и middleware в Laravel PHP
Wired 18.02.2025
Современная веб-разработка требует четкой организации кода и эффективного управления потоком HTTP-запросов. Laravel, как один из ведущих PHP-фреймворков, предоставляет два мощных инструмента для. . .
|
Фильтрация массива по неточному соответствию элементам другого массива в JavaScript
Wired 18.02.2025
При работе с массивами данных в JavaScript иногда возникает задача поиска и фильтрации элементов по неточному соответствию. В отличие от точного сравнения, когда мы ищем полное совпадение значений,. . .
|
Создаем SPA Router на чистом JavaScript
bytestream 17.02.2025
В современной веб-разработке одностраничные приложения (SPA) стали стандартом для создания динамичных и отзывчивых пользовательских интерфейсов. Ключевым компонентом любого SPA является роутер -. . .
|