Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.03.2013, 09:28   #11
kuklp
Участник клуба
 
Регистрация: 02.05.2010
Сообщений: 1,390
По умолчанию

Можно с неактивным листом, если на нем определен range занесенный в объектную переменную. Я часто пользуюсь конструкцией rng.parent при сохранении новых листов в файл. Имя такого листа неизвестно(как экс назовет), он м.б. как активным, так и неактивным. Самый простой и короткий способ как раз rng.parent.saveas.
mailto: kuklp60@gmail.com, ящики для благодарностей:
WM Z206653985942, R334086032478, U238399322728

Последний раз редактировалось kuklp; 06.03.2013 в 09:35.
kuklp вне форума Ответить с цитированием
Старый 06.03.2013, 10:41   #12
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Но если обращаться именно к Лист3 (как на скрине Сергея) - то думаю у меня на работе этот код заглючит... возможно.
Разгадывайте почему
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.03.2013, 10:53   #13
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Hugo121, привязка к книге нужна. Если не указывать книгу, то подразумевается лист в VBA-проекте, в котором находится код.
Скрипт вне форума Ответить с цитированием
Старый 06.03.2013, 11:20   #14
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Привязка привязкой (хотя не нашёл, как можно привязать без перебора - wb.Sheet1.[a1].value не работает, но перебором можно привязаться), но тут дело в другом - если это имя не сменить, то на английском Экселе это имя (Лист1) возможно само изменится на Sheet1 и код естественно встанет.
Может быть это на новых версиях исправлено, не знаю - но у меня на 2003 глюк есть.
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Старый 06.03.2013, 11:23   #15
Скрипт
Форумчанин
 
Регистрация: 24.12.2012
Сообщений: 776
По умолчанию

Hugo121, предположу, что не сменится, т.к. имя даётся при создании книги, а затем имена уже не меняются программой "Excel" автоматически.
Скрипт вне форума Ответить с цитированием
Старый 06.03.2013, 11:29   #16
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Вот как раз меняются...

И кстати проверить легко - качните пяток книг с форумов и обратите внимание на кодовые имена. Наверняка попадутся книги, созданные в Экселях другой локализации, в которых кодовые имена будут как у Вас. Счас на одну такую смотрю
webmoney: E265281470651 Z422237915069 R418926282008

Последний раз редактировалось Hugo121; 06.03.2013 в 12:05.
Hugo121 вне форума Ответить с цитированием
Старый 06.03.2013, 11:57   #17
Казанский
Старожил
 
Аватар для Казанский
 
Регистрация: 31.12.2010
Сообщений: 2,133
По умолчанию

Цитата:
Сообщение от Скрипт Посмотреть сообщение
Обращение к нужному Excel-листу:
  1. используя Excel-имя листа;
  2. используя VBA-имя листа (свойство "Codename");
  3. по порядковому номеру листа;
  4. обращение к активному листу с помощью "ActiveSheet";
  5. обращаение к листу через ячейку с помощью "Parent".
6. Обращение к Me в модуле листа.
exceleved@yandex.ru Яндекс.Деньги: 410011500007619
Казанский вне форума Ответить с цитированием
Старый 06.03.2013, 20:20   #18
Depressive
Пользователь
 
Регистрация: 09.05.2011
Сообщений: 22
По умолчанию

Спасибо, kuklp! Выручили!

Конечно, писать codename.Range удобнее, чем Worksheets(".....")
Уже переделал во многих местах макросов с Worksheets("имя_таблицы").Range.... на кодовое_имя_таблицы.Range....
Depressive вне форума Ответить с цитированием
Старый 06.03.2013, 23:02   #19
Hugo121
Старожил
 
Регистрация: 11.05.2010
Сообщений: 5,170
По умолчанию

Я обычно делаю так - в начале кода
Код:
 Set sh = wb.Worksheets(1)
wb где-то выше получено аналогично при первом обращении к книге.
ну и далее
Код:
sh.Range
webmoney: E265281470651 Z422237915069 R418926282008
Hugo121 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Объединение книг и листов по имени листа K_Auditor Microsoft Office Excel 9 08.06.2012 22:03
Передача информации о имени листа из ячейки SashaS Microsoft Office Excel 5 07.03.2012 16:13
Объединение книг и листов по имени листа MaxxVer Microsoft Office Excel 8 14.01.2011 13:09
Нужна помощь по смени имени листа Lis000iq Microsoft Office Excel 6 26.08.2009 21:11
активация листа по имени bnb17 Microsoft Office Excel 4 30.06.2009 17:26