![]() |
|
Определить, есть ли лист в книге с заданным именем28.06.2012, 18:03. Показов 65310. Ответов 13
Метки нет Все метки)
(
0
|
28.06.2012, 18:03 | |
Ответы с готовыми решениями:
13
Есть ли лист с определенным именем в книге? Определить существует ли лист в книге
|
призрак
![]() |
|
28.06.2012, 18:08 | |
![]() Решение
AndreA SN, я, конечно, рискую, но ради Вас готов разок получить по шее.
Вы задаёте так много интересных вопросов по Excel'ю, ответы на которые давным-давно лежат в сети. а у меня к Вам один вопрос: Вы в курсе, что существуют поисковые системы?
3
|
здесь больше нет...
3376 / 1674 / 184
Регистрация: 03.02.2010
Сообщений: 1,219
|
||||||
28.06.2012, 18:09 | ||||||
1
|
28.06.2012, 18:18 | ||||||||||||||||||||||||||||||||||||
![]() Решение
Не мое:
9
|
![]() 26820 / 14500 / 3192
Регистрация: 28.04.2012
Сообщений: 15,782
|
|
28.06.2012, 19:04 | |
![]() Решение
Ну и мои 5 копеек...
Можно использовать ADODB-соединение к книге екселя, открыть рекордсет для OpenSchema с параметром adSchemaTables. Проход по рекордсету даст все листы книги. Поиск по рекордсету позволит найти заданное имя. Метод удобен для поиска листов из внешнего файла.
4
|
![]() |
|
29.06.2012, 02:04 [ТС] | |
да в курсе я))) но такого количества толковых ответов да еще сконцентрированных в одном месте Вы там не найдете))) Поисковая система для профи))) а я, слава Богу, вопросы пока учусь задавать. При этом решаю свои насущные задачки. Вот что гарантированно могу сказать - то не деньги я Вашими ответами зарабатываю)))
А вообще по моему профилю я не считаю, сколько раз мне задают один и тот же вопрос. Я просто отвечаю. А программирование - совсем не мой профиль))) а если серьезно - пока тут висит один мой вопрос - я занимаюсь другими. На расшифровку поисковика нет совсем времени... И английский плохо знаю опять же... Вообщем благодарствую сказал... Добавлено через 3 минуты Кстати, о невеждах, ikki))) Слепой иногда пройдет там, где зрячий оступится)))
0
|
1301 / 403 / 22
Регистрация: 21.10.2011
Сообщений: 1,285
|
||||||
29.06.2012, 11:41 | ||||||
Не вижу здравого смысла в сообщении #4: это засорение интернета ненужной информацией по данному вопросу и усложнение для непрограммистов, которым просто нужно написать макрос.
Всё это заменяется вот этим:
3
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
|||||||||||
29.06.2012, 13:37 | |||||||||||
Busine2012,
собсно, достаточно такой конструкции:
Попробуй
6
|
29.06.2012, 15:51 | |
А в чем собственно проблема?
Когда искал для себя аналогичное решение данного вопроса, оно достаточно быстро нашлось в поисковике на Планете. Для меня это хороший пример, как шестью разными вариантами можно определить наличие листа. При том, что я практически не знаю объектной модели Excel, для меня примеры понятны. И то что определение сделано через функцию тоже плюс, не нужно в коде каждый раз награмождать конструкции, если делаются регулярные проверки. PS: для себя взял шестой вариант через Index, как наиболее понятный.
0
|
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 5
|
|||||||||||
11.02.2019, 01:28 | |||||||||||
Дабы не создавать новую тему,
В моей книге есть макросы, имеющие в своем составе формулы со ссылками на другие листы этой книги. При запуске макросов необходимо проверить книгу на соответствие имен листов (не изменил ли кто случайно). если все ОК, то запускаем другой макрос, если нет, то сообщение, какой лист нужно проверить. воспользовался примером Busine2012, и Казанский, написал код:
Макрос работает. Вопрос: можно ли упростить код для проверки имен листов, если число проверяемых листов на правильность имени будет больше 10 (без ухудшения производительности)? Было бы конечно лучше, если макрос сам переименовывал неправильные названия без участия пользователя.. Заранее спасибо. Добавлено через 25 минут
Но код проверяет (соответственно и переименовывает неправильные листы) по одному за работу всего цикла. Хотелось бы чтобы сразу все листы проверил, и все исправил. Добавлено через 5 минут Возникла мысль, хотелось бы узнать мнение о целесообразности, Может обойтись без проверки листов и сразу все листы переименовать?
0
|
15155 / 6428 / 1731
Регистрация: 24.09.2011
Сообщений: 9,999
|
||||||
11.02.2019, 15:33 | ||||||
dmb2,
0
|
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 5
|
|
11.02.2019, 19:29 | |
Казанский, спасибо!
Код действительно очень упростился ! (Правда пока не проверял работу кода. нет доступа к компу)..а можно ли к этому коду брбавить изменение имен листов по codename без сообщения, или нужно весь код менять? Codename у меня уже изменены, правда на кириллице. Никак не могу сообразить что стабильнее и быстрей, проверить на названия листы и при ошибке переименовывать, или сразу присваивать имена листов по Codename каждого листа.
0
|
0 / 0 / 0
Регистрация: 11.11.2017
Сообщений: 5
|
||||||
21.02.2019, 21:11 | ||||||
Нашел ответ на вопрос как лучше сделать, проверять все листы на соответствие имени или сразу менять названия.
Пришел к алгоритму: сначала проверить имена, и если какое-нибудь имя не совпадает,то тогда переименовать все листы заново. В самом распространенном случае, когда все имена листов правильные, переименование не происходит и за счет этого макрос быстрее отрабатывает (примерно на 0,03 сек).Мелочь, а приятно. Казанский, спасибо за код.
0
|
21.02.2019, 21:11 | ||||||
Помогаю со студенческими работами здесь
14
Перенести на новый лист строки с определенным именем, и переименовать лист Можно ли как то определить что компонент с заданным именем присутствует в коллекции Можно ли как то определить что компонент с заданным именем присутствует в коллекции Искать еще темы с ответами Или воспользуйтесь поиском по форуму:
|
|
Новые блоги и статьи
![]() |
||||
Результаты исследования от команды MCM (март 2025 г.)
Programma_Boinc 07.04.2025
Результаты исследования от команды MCM (март 2025 г. )
В рамках наших текущих исследований мы продолжаем изучать гены, которые имеют наибольшую вероятность развития рака легких, выявленные в рамках. . .
|
Рекурсивные типы в Python
py-thonny 07.04.2025
Рекурсивные типы - это типы данных, которые определяются через самих себя или в сочетании с другими типами, которые в свою очередь ссылаются на исходный тип. В мире программирования такие структуры. . .
|
C++26: Объединение и конкатенация последовательностей и диапазонов в std::ranges
NullReferenced 07.04.2025
Работа с последовательностями данных – одна из фундаментальных задач, с которой сталкивается каждый разработчик. C++ прошел длинный путь в эволюции средств для манипуляции коллекциями – от. . .
|
Обмен данными в микросервисной архитектуре
ArchitectMsa 06.04.2025
Когда разработчики начинают погружаться в мир микросервисов, они часто сталкиваются с парадоксальным правилом: "два сервиса не должны делить один источник данных". Эта мантра звучит повсюду в. . .
|
PostgreSQL в Kubernetes: Автоматизация обслуживания с CNPG
Mr. Docker 06.04.2025
Администраторы баз данных сталкиваются с целым рядом проблем при обслуживании PostgreSQL в Kubernetes: как обеспечить правильную репликацию данных, как настроить автоматическое переключение при. . .
|
Async/await в TypeScript
run.dev 06.04.2025
Асинхронное программирование — это подход к разработке программного обеспечения, при котором операции выполняются независимо друг от друга. В отличие от синхронного выполнения, где каждая последующая. . .
|
Многопоточность в C#: Синхронизация потоков
UnmanagedCoder 06.04.2025
Многопоточное программирование стало неотъемлемой частью разработки современных приложений на C#. С появлением многоядерных процессоров возможность выполнять несколько задач параллельно значительно. . .
|
TypeScript: Классы и конструкторы
run.dev 06.04.2025
TypeScript, как статически типизированный язык, построенный на основе JavaScript, привнес в веб-разработку новый уровень надежности и структурированности кода. Одним из важнейших элементов этой. . .
|
Многопоточное программирование: Rust против C++
golander 06.04.2025
C++ существует уже несколько десятилетий и его поддержка параллелизма постепенно наращивалась со временем. Начиная с C++11, язык получил стандартную библиотеку для работы с потоками, а в последующих. . .
|
std::vector в C++: от основ к оптимизации производительности
NullReferenced 05.04.2025
Для многих программистов знакомство с std::vector происходит на ранних этапах изучения языка, но между базовым пониманием и подлинным мастерством лежит огромная дистанция. Контейнер std::vector. . .
|