Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

Программирование переходов между листами в Excel

20K
16 декабря 2006 года
sergey-shadow
11 / / 16.12.2006
В процессе написания программы я столкнулся со следующей проблемой, решение которой не могу найти ни в одной литературе.
У меня есть такие Листы: "БД", "БД2" "Склад", "Накладная1", "Накладная2" и диалоговое окно (ДО). ДО я использую для заполнения "Накладной1" или "Накладной2" и т.д. В перспективе будет расти количество накладных. Для заполнения КомбоБоксов я использую листы "БД" и "БД2". После сделанных выборов в КомбоБоксах и дополнительно введенных данных в других полях, я записываю новую информацию в "НакладнуюN". Вот тут-то и загвоздка. Как сохранить имя листа "НакладнаяN", и затем вернуться к нему после описанных выше действий. Возможно я слишком усложнил алгоритм, и есть более простой способ. Подскажите как мне выкрутиться из создавшегося тупика.:confused:
263
16 декабря 2006 года
koltaviy
816 / / 16.12.2004
Если у тя нет ни одного модуля в проекте - добавь и объяви в нем глобальную переменную!! Туда и записывай!! ..оттуда и считывай!!
20K
21 декабря 2006 года
sergey-shadow
11 / / 16.12.2006
Честно говоря, я не понял Ваш ответ. Прочитал и почесал затылок. Может привести маленький примерчик с пояснениями. У меня проблема в том, что ни одна литература не описывает полностью все методы и объекты VBA. Как правило там все пишется вскольз. А иногда кратко и ясно. Но для кого ясно? Я подозреваю, что только для автора книги. Я еще не добрался до ООП. Поэтому мне нужно знать команды от и до.
Например,
a = UserForm1.ComboBox.Value 'возвращает значение КомбоБокса переменной а.

Вот это я пойму. Однако кто подскажет, где можно найти описание всего, что может быть написано после ActiveSheet.***
Это касается не только его но и всех других объектов.
263
22 декабря 2006 года
koltaviy
816 / / 16.12.2004
'Подскажет' встроенный Help и знание английского языка!!..
Собираешься программировать и дальше - необходимо осваивать..)
Также, как правило, для большинства средств программирования, существуют авторские переводы Help'ов, имхо, не всегда правда корректные(читал один), но все-таки!!..
Так что либо в Help, либо в любимый.. Yandex!!
405
22 декабря 2006 года
Dmitrii
554 / / 16.12.2004
Цитата: sergey-shadow
... ни одна литература не описывает полностью все методы и объекты VBA...


Пожалуй, более полного описания, чем в MSDN, Вы ни в одном источнике и не найдёте. Но MSDN существует только в электронном виде и, думаю, только на английском.
Что касается печатной продукции, то советую поискать литературу от Microfost Press (официальное издательство компании Microfost). Локализацией этих изданий обычно занимается издательско-торговый дом "Русская редакция".
Из наших отечественных источников советую обратить внимание на книги Кузьменко. Они представлят собой неплохую русификацию встроенной справки. Его книги обычно издаются издательством "Бином".

20K
22 декабря 2006 года
sergey-shadow
11 / / 16.12.2006
Я так понял, вы не знаете ответа на мой вопрос. А жаль. Мне срочно нужен ответ. А поиски занимают много времени. Английский я за 1 день не выучу. Похоже я зря ожидал помощи от форума. Как всегда прийдется грызть, грызть, грызть. :eek:
267
22 декабря 2006 года
Cutty Sark
1.2K / / 17.10.2002
Нет, не зря ожидал. Давай я тебе помогу, только ты, пожалуйста, объясни что требуется. Из первого сообщения в теме не очень это понятно. Возможно, стоит зазипить сюда свой файл.
263
22 декабря 2006 года
koltaviy
816 / / 16.12.2004
Цитата: Dmitrii
..Но MSDN существует только в электронном виде и, думаю, только на английском..


Не только в электронном виде.. К примеру, с Visual Studio 2005, поставляется MSDN, который у меня и установлен:)
На русском тоже есть.. Там же где-то, где и на английском, только ссылка какая-то на 'rus' - не помню)) Но точно есть!! Если откопаю - кину сюда ссылку..
---------------------------------------------------
[COLOR=blue]Вот русский MSDN.. Правда 'суженный' до студии):[/COLOR]
http://msdn.microsoft.com/library/rus/

20K
22 декабря 2006 года
sergey-shadow
11 / / 16.12.2006
У меня есть такие листы "БД", "Накладная[COLOR="Red"]1[/COLOR]". Листы "Склад" и "БД" статичны. А Лист "Накладная..." переменная. То есть после каждого запуска программы это может быть "Накладная1", а может быть "Накладная2" или "Накладная...". Это зависит от того, с какого листа пользователь запустит программу.

При запуске программы открывается диалоговое окно. В нем есть ComboBox и TextBox.

Что мне нужно сделать:
1. В ComboBox загрузить данные из листа "БД".
2. После ручного ввода дополнительных данных в TextBox, и выбора элемента из списка ComboBox мне надо вернуться на лист "Накладная...", с которого я запустил программу. Заранее я не знаю, какой будет номер у листа после слов "Накладная".
3. Записать данные из диалогового окна (или формы) в лист "Накладная...".

Для перехода из листа в лист я пишу следующий код:

Sheets("БД").Select

Если бы я например знал, с какого листа будет стартована программа (например, с листа "Накладная23"), то я бы написал следующий код:

Sheets("Накладная23").Select

Но это может быть какая угодно Накладная. Я не знаю кода, который позволял бы делать переходы не так прямолинейно и явно.

=====================================================

Когда-то давно я пользовался командой Range("H21").Select для объявления ячейки, но не мог свободно перемещаться между ними пока не узнал про команду Cells(y,x). Сейчас я ищу аналог для перемещения между листами книги на подобии Cells.
248
23 декабря 2006 года
Dmitry2064
590 / / 06.12.2006
А вопросик под тему: как можно клавишами переключаться между листами?
Вроде раньше я пользовался клавишей Ctrl-PgUp(PgDw). Но не сработала чего-то. Может какие настройки нужны?
А, нашел, вот:.
[COLOR="Navy"]Ctrl-Sh-PgUp(PgDw)[/COLOR]
20K
23 декабря 2006 года
sergey-shadow
11 / / 16.12.2006
Меня не интересует переключение между страничами при помощи комбинации клавиш или "ручками". Я хочу знать как это сделать программным путем.
263
24 декабря 2006 года
koltaviy
816 / / 16.12.2004
Чтобы узнать какой лист активный:
 
Код:
...
SheetName = ActiveWorkbook.ActiveSheet.Name
...

Чтобы сделать лист активным:
 
Код:
...
ActiveWorkbook.Sheets(SheetName).Select
...
20K
24 декабря 2006 года
sergey-shadow
11 / / 16.12.2006
Проверил. РАБОТАЕТ!!!! Спасибо!!!!!!!!!!!!!!!!!!!!!

А теперь подскажи, как ты откопал эти коды? Где их нашел?
263
24 декабря 2006 года
koltaviy
816 / / 16.12.2004
Порядок поиска ответа на возникший вопрос)):
1) Help
2) Любимый.. Yandex)
3) Учебник/справочник/статья и т.п. по данному вопросу/языку/среде
4) Поиск на любимом форуме
5) Создание новой темы на форуме
Заметь "Создание новой темы на форуме" стоит на последнем месте..
Подобные вопросы относятся к, ИМХО, "ленивым"..
Человек поленился поискать в первых 4 пунктах и поэтому 'пришел' со своим вопросом на форум..
При этом не учитывается, что форумчане, заведомо зная, что этот вопрос обсуждается/разъясняется/объясняется и т.п. мягко говоря где попало, либо не станут на него отвечать из принципа, либо не захотят отвечать на него в очередной раз, либо, как в твоем случае, не поймут, что именно ты от них хочешь и.. 'забьют')
Вывод: гораздо быстрее будет найти ответ самому, чем ждать ответа от кого-то..
Задал вопрос ты 16.12.2006, 03:13
..а ответ получил 24.12.2006, 12:07
Больше недели вместо 'одного' клика в Help'e!!
20K
25 декабря 2006 года
sergey-shadow
11 / / 16.12.2006
Кликал я в хелпе, закачал e-Bookи по VBA. Пересмотрел все. Даже в Яндексе на поиск брал. На все потратил больше года. Пока не попал сюда. То, что я получил ответ через неделю, меня не огорчает, а наоборот радует. Наконец-то я получил ответ. Для меня важен результат.
263
25 декабря 2006 года
koltaviy
816 / / 16.12.2004
Цитата: sergey-shadow
..на все потратил больше года. Пока не попал сюда...


:eek: :eek: :D Да уж.. Если у тя уходит столько времени на поиск ответов, тебе следует научиться формулировать вопросы..

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог