|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу. Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста". Название темы слишком короткое или не отражает сути вашего вопроса. Тема исчерпала себя, помните, один вопрос - одна тема Прочитайте правила и заново правильно создайте тему. |
|
Опции темы | Поиск в этой теме |
25.11.2008, 19:09 | #1 |
Пользователь
Регистрация: 17.11.2008
Сообщений: 18
|
как листу дать имя
Люди, помогите пожалуйста и если можно, то срочно (по работе горит)! Я в макросах - полный ноль. а без них задачу не решить.
Есть некая книга с массой листов. На каждом листе есть одинаковая шапка для таблицы. В этой шапке каждой ячейке (например В2 - название, А2 - имя, J2 - имя и т.д.) соответствует свое содержимое. Помогите сделать так, чтобы имя листа соответствовало содержимому одной ячейке на листе (например ячейке А2, т.е. её содержимому) и еще, при добавлении листов, в новом листе это работало тоже. Просто когда листов немного, это можно сделать вручную, а вот для огромного количества..... проблематично. Оглавление для книги уже есть. Создается при помощи макроса. Если можно и подскажите как это все связать. |
25.11.2008, 19:14 | #2 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Код:
Цитата:
Придется после заполнения нового листа снова запускать макрос.
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 25.11.2008 в 19:17. |
|
25.11.2008, 19:36 | #3 |
Пользователь
Регистрация: 17.11.2008
Сообщений: 18
|
EducatedFool!
подскажите еще - это записывать как модуль в книгу? Если да, тогда напрашивается еще вопрос. одним модулем в книге есть оглавление - вот такой макрос Sub SheetList() Dim sheet As Worksheet Dim cell As Range With ActiveWorkbook For Each sheet In ActiveWorkbook.Worksheets Set cell = Worksheets(1).Cells(sheet.Index, 1) .Worksheets(1).Hyperlinks.Add anchor:=cell, Address:="", _ SubAddress:="'" & sheet.Name & "'" & "!A1" cell.Formula = sheet.Name Next End With End Sub , как их совместить или создать различные модули? и еще забыла, нужно чтобы листы были по порядку. |
25.11.2008, 19:47 | #4 |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Разные модули создавать ни к чему.
Можно поместить эти макросы один за другим, например, так: Код:
Код:
|
25.11.2008, 19:56 | #5 |
Пользователь
Регистрация: 17.11.2008
Сообщений: 18
|
А сортировать по порядку 1, 2, 3, и т.д. они смогут?
И пока последний вопрос. У меня на работе стоит 2 машины, на одной офис 2003, на другой 2007. Этот макрос сможет работать и в одном excel и в другом? Я решила серьезно заняться изучением этого дела как VBA. В интернете нашла достаточно много литературы, но столкнулась с тем, что макросы написаные для одной системы, не всегда подходят к другой. Иногда бывают конфликты между 97, 2003 и 2007 офисом.(я сама с таким столкнулась). Подскажите(если можно со ссылкой) где расписано даже для "полных нулей в VBA" как написать правильный макрос или исправить уже готовый, если он не работает в этой версии. |
25.11.2008, 20:03 | #6 |
Пользователь
Регистрация: 17.11.2008
Сообщений: 18
|
Я то нашла макрос для сортировки листов:
Sub SortSheets() Dim I As Integer, J As Integer For I = 1 To Sheets.Count - 1 For J = I + 1 To Sheets.Count If UCase(Sheets(I).Name) > UCase(Sheets(J).Name) Then Sheets(J).Move Before:=Sheets(I) End If Next J Next I End Sub Из всего выше изложенного его нужно будет поставить в тот же самый модуль после предыдущего составного макроса.? |
25.11.2008, 20:09 | #7 | ||||
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Цитата:
Цитата:
Цитата:
Абсолютное большинство макросов, которые Вам понадобятся для работы, будут отлично работать во всех версиях Excel
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 25.11.2008 в 21:29. |
||||
25.11.2008, 21:05 | #8 |
Пользователь
Регистрация: 17.11.2008
Сообщений: 18
|
В данному случае каждому ярлыку листа будет присвоено имя, обозначающее номер или слово. И сортировать естественно придется листы книги, а оглавление само подстроится затем под нумерацию или список
|
25.11.2008, 21:29 | #9 | |
Программист VBA
СуперМодератор
Регистрация: 13.07.2008
Сообщений: 6,858
|
Цитата:
Главное, в каком порядке все эти макросы будут запускаться. Напишите макрос Код:
Макрос сортировки листов лучше записать так: Sub SortSheets() Dim I As Integer, J As Integer For I = 1 To Worksheets.Count - 1 For J = I + 1 To Worksheets.Count If UCase(Worksheets(I).Name) > UCase(Worksheets(J).Name) Then Worksheets(J).Move Before:=Worksheets(I) Next J Next I End Sub[/CODE]
__Полезные надстройки для Excel. Парсинг сайтов и файлов.
Макросы любой сложности на заказ. Мониторинг цен конкурентов Последний раз редактировалось EducatedFool; 25.11.2008 в 22:29. |
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Как присвоить ячейке имя? | Maxx | Microsoft Office Excel | 2 | 01.11.2008 11:30 |
Как получить имя файла | Crazyman | Работа с сетью в Delphi | 4 | 11.07.2008 00:47 |
Как не дать разъединиться с Инетом | Crazyman | Работа с сетью в Delphi | 2 | 04.03.2008 00:12 |
Как купить доменное имя ? | mad-explorer | Свободное общение | 6 | 07.11.2007 19:33 |
TWebBrowser-как перехватить команду скрипта для закрытия окна и не дать ему закрыться | Вовик | Компоненты Delphi | 5 | 03.10.2007 12:17 |