Задать названия Листов в Книге, используя массив
mower07
Дата: Понедельник, 08.02.2016, 19:52 |
Сообщение № 21
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Ковыряюсь дальше Имеется такой Код в "ЭТА Книга": [vba]Код
Private Sub Workbook_Open() MsgBox "HELLO! Document ШАБЛОН is open!" End Sub
[/vba] В Модуле 1 имеется такой код [vba]Код
Public NameShale(1 To 4) As String Sub mas1() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" End Sub Private Sub именуем_вкладки_шале() Dim i As Integer For i = 62 To 65 ThisWorkbook.Worksheets(i).Name = NameShale(i - 61) Next i End Sub
[/vba] Как сделать, чтобы при открытии книги Описывался Массив ,после чего массив заполнялся и нумеровались вкладки согласно массиву Сейчас все работает только, если запускать вручную процедуры, последовательно Пробовал вызывать Call'ом эти процедурыиз модуля 1 в первом коде, сразу после MSgBox, но выдавало ошибку
Ковыряюсь дальше Имеется такой Код в "ЭТА Книга": [vba]Код
Private Sub Workbook_Open() MsgBox "HELLO! Document ШАБЛОН is open!" End Sub
[/vba] В Модуле 1 имеется такой код [vba]Код
Public NameShale(1 To 4) As String Sub mas1() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" End Sub Private Sub именуем_вкладки_шале() Dim i As Integer For i = 62 To 65 ThisWorkbook.Worksheets(i).Name = NameShale(i - 61) Next i End Sub
[/vba] Как сделать, чтобы при открытии книги Описывался Массив ,после чего массив заполнялся и нумеровались вкладки согласно массиву Сейчас все работает только, если запускать вручную процедуры, последовательно Пробовал вызывать Call'ом эти процедурыиз модуля 1 в первом коде, сразу после MSgBox, но выдавало ошибку mower07
Ответить
Сообщение Ковыряюсь дальше Имеется такой Код в "ЭТА Книга": [vba]Код
Private Sub Workbook_Open() MsgBox "HELLO! Document ШАБЛОН is open!" End Sub
[/vba] В Модуле 1 имеется такой код [vba]Код
Public NameShale(1 To 4) As String Sub mas1() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" End Sub Private Sub именуем_вкладки_шале() Dim i As Integer For i = 62 To 65 ThisWorkbook.Worksheets(i).Name = NameShale(i - 61) Next i End Sub
[/vba] Как сделать, чтобы при открытии книги Описывался Массив ,после чего массив заполнялся и нумеровались вкладки согласно массиву Сейчас все работает только, если запускать вручную процедуры, последовательно Пробовал вызывать Call'ом эти процедурыиз модуля 1 в первом коде, сразу после MSgBox, но выдавало ошибку Автор - mower07 Дата добавления - 08.02.2016 в 19:52
mower07
Дата: Понедельник, 08.02.2016, 19:58 |
Сообщение № 22
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Udik , заработало. Ошибка была, видимо в наличии элемента Private в одном из макросов
Udik , заработало. Ошибка была, видимо в наличии элемента Private в одном из макросовmower07
Сообщение отредактировал mower07 - Понедельник, 08.02.2016, 20:02
Ответить
Сообщение Udik , заработало. Ошибка была, видимо в наличии элемента Private в одном из макросовАвтор - mower07 Дата добавления - 08.02.2016 в 19:58
Udik
Дата: Понедельник, 08.02.2016, 19:58 |
Сообщение № 23
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Сообщение отредактировал Udik - Понедельник, 08.02.2016, 19:59
Ответить
mower07
Дата: Понедельник, 08.02.2016, 20:02 |
Сообщение № 24
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Udik , читал и делал это (без проверки), но выдавало ошибку, как и писал, видимо, из-за Private А в проверку тут нет необходимости, т.к. я перед закрытием переименовываю вкладки и сохраняю. После открытия они стали называться, как и было до изменения, значит, макрос работает Спасибо
Udik , читал и делал это (без проверки), но выдавало ошибку, как и писал, видимо, из-за Private А в проверку тут нет необходимости, т.к. я перед закрытием переименовываю вкладки и сохраняю. После открытия они стали называться, как и было до изменения, значит, макрос работает Спасибоmower07
Ответить
Сообщение Udik , читал и делал это (без проверки), но выдавало ошибку, как и писал, видимо, из-за Private А в проверку тут нет необходимости, т.к. я перед закрытием переименовываю вкладки и сохраняю. После открытия они стали называться, как и было до изменения, значит, макрос работает СпасибоАвтор - mower07 Дата добавления - 08.02.2016 в 20:02
Udik
Дата: Понедельник, 08.02.2016, 20:07 |
Сообщение № 25
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
Если надо Private вызывать из другого модуля, то в модуле с Private прописываете Public макрос, вызывающий Private. Из других модулей вызываете Public
Если надо Private вызывать из другого модуля, то в модуле с Private прописываете Public макрос, вызывающий Private. Из других модулей вызываете Public Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Ответить
Сообщение Если надо Private вызывать из другого модуля, то в модуле с Private прописываете Public макрос, вызывающий Private. Из других модулей вызываете Public Автор - Udik Дата добавления - 08.02.2016 в 20:07
mower07
Дата: Понедельник, 08.02.2016, 20:25 |
Сообщение № 26
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Если надо Private вызывать из другого модуля, то в модуле с Private прописываете Public макрос, вызывающий Private. Из других модулей вызываете Public
Что-то слишком запутано, все циклично друг друга вызывает, как-будто :) Пока что все работает, допилю и выложу сюда финальный код
Если надо Private вызывать из другого модуля, то в модуле с Private прописываете Public макрос, вызывающий Private. Из других модулей вызываете Public
Что-то слишком запутано, все циклично друг друга вызывает, как-будто :) Пока что все работает, допилю и выложу сюда финальный кодmower07
Ответить
Сообщение Если надо Private вызывать из другого модуля, то в модуле с Private прописываете Public макрос, вызывающий Private. Из других модулей вызываете Public
Что-то слишком запутано, все циклично друг друга вызывает, как-будто :) Пока что все работает, допилю и выложу сюда финальный кодАвтор - mower07 Дата добавления - 08.02.2016 в 20:25
mower07
Дата: Понедельник, 08.02.2016, 20:34 |
Сообщение № 27
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Что имеетя: 1. Автозапуск процессов в Эта_книга [vba]Код
Private Sub Workbook_Open() Call ShaleNaming Call OptimumNaming End Sub
[/vba] 2. Сами процессы в Модуль1 [vba]Код
Public NameShale(1 To 4) As String Public NameOptimum(1 To 17) As String Sub ShaleNaming() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" Dim i As Integer For i = 62 To 65 ThisWorkbook.Worksheets(i).Name = NameShale(i - 61) Next i End Sub Sub OptimumNaming() NameOptimum(1) = "Оптмиум-230" NameOptimum(2) = "Оптмиум-2х110" NameOptimum(3) = "Оптмиум-180" NameOptimum(4) = "Оптмиум-190" NameOptimum(5) = "Оптмиум-290" NameOptimum(6) = "Оптмиум-200" NameOptimum(7) = "Оптмиум-350" NameOptimum(8) = "Оптмиум-270" NameOptimum(9) = "Оптмиум-480" NameOptimum(10) = "Оптмиум-420" NameOptimum(11) = "Оптмиум-540" NameOptimum(12) = "Оптмиум-370" NameOptimum(13) = "Оптмиум-450" NameOptimum(14) = "Оптмиум-530" NameOptimum(15) = "Оптмиум-400" NameOptimum(16) = "Оптмиум-170" NameOptimum(17) = "Оптмиум-410" Dim i As Integer For i = 45 To 61 ThisWorkbook.Worksheets(i).Name = NameOptimum(i - 44) Next i End Sub
[/vba]
Что имеетя: 1. Автозапуск процессов в Эта_книга [vba]Код
Private Sub Workbook_Open() Call ShaleNaming Call OptimumNaming End Sub
[/vba] 2. Сами процессы в Модуль1 [vba]Код
Public NameShale(1 To 4) As String Public NameOptimum(1 To 17) As String Sub ShaleNaming() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" Dim i As Integer For i = 62 To 65 ThisWorkbook.Worksheets(i).Name = NameShale(i - 61) Next i End Sub Sub OptimumNaming() NameOptimum(1) = "Оптмиум-230" NameOptimum(2) = "Оптмиум-2х110" NameOptimum(3) = "Оптмиум-180" NameOptimum(4) = "Оптмиум-190" NameOptimum(5) = "Оптмиум-290" NameOptimum(6) = "Оптмиум-200" NameOptimum(7) = "Оптмиум-350" NameOptimum(8) = "Оптмиум-270" NameOptimum(9) = "Оптмиум-480" NameOptimum(10) = "Оптмиум-420" NameOptimum(11) = "Оптмиум-540" NameOptimum(12) = "Оптмиум-370" NameOptimum(13) = "Оптмиум-450" NameOptimum(14) = "Оптмиум-530" NameOptimum(15) = "Оптмиум-400" NameOptimum(16) = "Оптмиум-170" NameOptimum(17) = "Оптмиум-410" Dim i As Integer For i = 45 To 61 ThisWorkbook.Worksheets(i).Name = NameOptimum(i - 44) Next i End Sub
[/vba] mower07
Сообщение отредактировал mower07 - Понедельник, 08.02.2016, 20:36
Ответить
Сообщение Что имеетя: 1. Автозапуск процессов в Эта_книга [vba]Код
Private Sub Workbook_Open() Call ShaleNaming Call OptimumNaming End Sub
[/vba] 2. Сами процессы в Модуль1 [vba]Код
Public NameShale(1 To 4) As String Public NameOptimum(1 To 17) As String Sub ShaleNaming() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" Dim i As Integer For i = 62 To 65 ThisWorkbook.Worksheets(i).Name = NameShale(i - 61) Next i End Sub Sub OptimumNaming() NameOptimum(1) = "Оптмиум-230" NameOptimum(2) = "Оптмиум-2х110" NameOptimum(3) = "Оптмиум-180" NameOptimum(4) = "Оптмиум-190" NameOptimum(5) = "Оптмиум-290" NameOptimum(6) = "Оптмиум-200" NameOptimum(7) = "Оптмиум-350" NameOptimum(8) = "Оптмиум-270" NameOptimum(9) = "Оптмиум-480" NameOptimum(10) = "Оптмиум-420" NameOptimum(11) = "Оптмиум-540" NameOptimum(12) = "Оптмиум-370" NameOptimum(13) = "Оптмиум-450" NameOptimum(14) = "Оптмиум-530" NameOptimum(15) = "Оптмиум-400" NameOptimum(16) = "Оптмиум-170" NameOptimum(17) = "Оптмиум-410" Dim i As Integer For i = 45 To 61 ThisWorkbook.Worksheets(i).Name = NameOptimum(i - 44) Next i End Sub
[/vba] Автор - mower07 Дата добавления - 08.02.2016 в 20:34
Udik
Дата: Понедельник, 08.02.2016, 20:40 |
Сообщение № 28
Группа: Друзья
Ранг: Старожил
Сообщений: 1588
Репутация:
192
±
Замечаний:
0% ±
Excel 2016 х 64
хы, ну вот пример это в стандартном модуле [vba]Код
Private Sub mas1() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" End Sub Public Sub getPrivate() Call mas1 End Sub
[/vba] а это в другом модуле [vba]Код
Private Sub Workbook_Open() Call getPrivate End Sub
[/vba]
хы, ну вот пример это в стандартном модуле [vba]Код
Private Sub mas1() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" End Sub Public Sub getPrivate() Call mas1 End Sub
[/vba] а это в другом модуле [vba]Код
Private Sub Workbook_Open() Call getPrivate End Sub
[/vba]Udik
вот вам барабан яд 41001231307558 wm R419131876897 udik1968@gmail.com
Ответить
Сообщение хы, ну вот пример это в стандартном модуле [vba]Код
Private Sub mas1() NameShale(1) = "Шале-176" NameShale(2) = "Шале-207" NameShale(3) = "Шале-248" NameShale(4) = "Шале-304" End Sub Public Sub getPrivate() Call mas1 End Sub
[/vba] а это в другом модуле [vba]Код
Private Sub Workbook_Open() Call getPrivate End Sub
[/vba]Автор - Udik Дата добавления - 08.02.2016 в 20:40
mower07
Дата: Понедельник, 08.02.2016, 20:42 |
Сообщение № 29
Группа: Пользователи
Ранг: Новичок
Сообщений: 24
Репутация:
0
±
Замечаний:
0% ±
Excel 2013
Понятно!
Ответить
Сообщение Понятно! Автор - mower07 Дата добавления - 08.02.2016 в 20:42