Программирование переходов между листами в Excel
У меня есть такие Листы: "БД", "БД2" "Склад", "Накладная1", "Накладная2" и диалоговое окно (ДО). ДО я использую для заполнения "Накладной1" или "Накладной2" и т.д. В перспективе будет расти количество накладных. Для заполнения КомбоБоксов я использую листы "БД" и "БД2". После сделанных выборов в КомбоБоксах и дополнительно введенных данных в других полях, я записываю новую информацию в "НакладнуюN". Вот тут-то и загвоздка. Как сохранить имя листа "НакладнаяN", и затем вернуться к нему после описанных выше действий. Возможно я слишком усложнил алгоритм, и есть более простой способ. Подскажите как мне выкрутиться из создавшегося тупика.:confused:
Например,
a = UserForm1.ComboBox.Value 'возвращает значение КомбоБокса переменной а.
Вот это я пойму. Однако кто подскажет, где можно найти описание всего, что может быть написано после ActiveSheet.***
Это касается не только его но и всех других объектов.
Собираешься программировать и дальше - необходимо осваивать..)
Также, как правило, для большинства средств программирования, существуют авторские переводы Help'ов, имхо, не всегда правда корректные(читал один), но все-таки!!..
Так что либо в Help, либо в любимый.. Yandex!!
Пожалуй, более полного описания, чем в MSDN, Вы ни в одном источнике и не найдёте. Но MSDN существует только в электронном виде и, думаю, только на английском.
Что касается печатной продукции, то советую поискать литературу от Microfost Press (официальное издательство компании Microfost). Локализацией этих изданий обычно занимается издательско-торговый дом "Русская редакция".
Из наших отечественных источников советую обратить внимание на книги Кузьменко. Они представлят собой неплохую русификацию встроенной справки. Его книги обычно издаются издательством "Бином".
Не только в электронном виде.. К примеру, с Visual Studio 2005, поставляется MSDN, который у меня и установлен:)
На русском тоже есть.. Там же где-то, где и на английском, только ссылка какая-то на 'rus' - не помню)) Но точно есть!! Если откопаю - кину сюда ссылку..
---------------------------------------------------
[COLOR=blue]Вот русский MSDN.. Правда 'суженный' до студии):[/COLOR]
http://msdn.microsoft.com/library/rus/
При запуске программы открывается диалоговое окно. В нем есть ComboBox и TextBox.
Что мне нужно сделать:
1. В ComboBox загрузить данные из листа "БД".
2. После ручного ввода дополнительных данных в TextBox, и выбора элемента из списка ComboBox мне надо вернуться на лист "Накладная...", с которого я запустил программу. Заранее я не знаю, какой будет номер у листа после слов "Накладная".
3. Записать данные из диалогового окна (или формы) в лист "Накладная...".
Для перехода из листа в лист я пишу следующий код:
Sheets("БД").Select
Если бы я например знал, с какого листа будет стартована программа (например, с листа "Накладная23"), то я бы написал следующий код:
Sheets("Накладная23").Select
Но это может быть какая угодно Накладная. Я не знаю кода, который позволял бы делать переходы не так прямолинейно и явно.
=====================================================
Когда-то давно я пользовался командой Range("H21").Select для объявления ячейки, но не мог свободно перемещаться между ними пока не узнал про команду Cells(y,x). Сейчас я ищу аналог для перемещения между листами книги на подобии Cells.
Вроде раньше я пользовался клавишей Ctrl-PgUp(PgDw). Но не сработала чего-то. Может какие настройки нужны?
А, нашел, вот:.
[COLOR="Navy"]Ctrl-Sh-PgUp(PgDw)[/COLOR]
SheetName = ActiveWorkbook.ActiveSheet.Name
...
Чтобы сделать лист активным:
ActiveWorkbook.Sheets(SheetName).Select
...
А теперь подскажи, как ты откопал эти коды? Где их нашел?
1) Help
2) Любимый.. Yandex)
3) Учебник/справочник/статья и т.п. по данному вопросу/языку/среде
4) Поиск на любимом форуме
5) Создание новой темы на форуме
Заметь "Создание новой темы на форуме" стоит на последнем месте..
Подобные вопросы относятся к, ИМХО, "ленивым"..
Человек поленился поискать в первых 4 пунктах и поэтому 'пришел' со своим вопросом на форум..
При этом не учитывается, что форумчане, заведомо зная, что этот вопрос обсуждается/разъясняется/объясняется и т.п. мягко говоря где попало, либо не станут на него отвечать из принципа, либо не захотят отвечать на него в очередной раз, либо, как в твоем случае, не поймут, что именно ты от них хочешь и.. 'забьют')
Вывод: гораздо быстрее будет найти ответ самому, чем ждать ответа от кого-то..
Задал вопрос ты 16.12.2006, 03:13
..а ответ получил 24.12.2006, 12:07
Больше недели вместо 'одного' клика в Help'e!!
:eek: :eek: :D Да уж.. Если у тя уходит столько времени на поиск ответов, тебе следует научиться формулировать вопросы..