Как занести в переменную CodeName листа. (программное имя)
lopuxi
Дата: Вторник, 17.11.2020, 16:42 |
Сообщение № 1
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация:
0
±
Замечаний:
0% ±
Excel 2007, 2013
Добрый вечер всем гуру VBA и Excel. Я тут бьюсь надо таким вопросом. Допустим у меня в книги есть 4 листа, с заданными в VBA именами - Client_Card, List_OOH, List_Radio и List_TV и все эти листы в книге полностью скрыты (xlSheetVeryHidden) Как мне загнать в переменную не название листа, которое может быть каким угодно, в том числе его может изменить и сам пользователь, а именное кодовое название листа. Получив в переменной кодовое название листа, мне надо его использовать. Таким образом я получаю имя листа... Client_Card.Name List_OOH.Name List_Radio.Name List_TV.Name А такой вариант List_TV.CodeName не дает мне List_TV и я как бы не знаю как достать именно List_TV, что бы поместить его в переменную, допустим Sheets_Open и потом сделать так: [vba]Код
Dim WBSheets As Object Dim Sheets_Open As String Private Sub CommandButton1_Click() Sheets_Open = "List_TV" ' тут вот допустим присваиваем CodeName листа, не то, что отображается в таблице Excel для пользователя ' Здесь начинаем искать лист, не по названию, а по CodeName For Each WBSheets In ActiveWorkbook.Sheets If WBSheets.CodeName = Client_Card.CodeName Then WBSheets.Visible = xlSheetVisible ' Next WBSheets End Sub
[/vba] p.s. код не рабочий... это так мой набросок, моих мыслей...
Добрый вечер всем гуру VBA и Excel. Я тут бьюсь надо таким вопросом. Допустим у меня в книги есть 4 листа, с заданными в VBA именами - Client_Card, List_OOH, List_Radio и List_TV и все эти листы в книге полностью скрыты (xlSheetVeryHidden) Как мне загнать в переменную не название листа, которое может быть каким угодно, в том числе его может изменить и сам пользователь, а именное кодовое название листа. Получив в переменной кодовое название листа, мне надо его использовать. Таким образом я получаю имя листа... Client_Card.Name List_OOH.Name List_Radio.Name List_TV.Name А такой вариант List_TV.CodeName не дает мне List_TV и я как бы не знаю как достать именно List_TV, что бы поместить его в переменную, допустим Sheets_Open и потом сделать так: [vba]Код
Dim WBSheets As Object Dim Sheets_Open As String Private Sub CommandButton1_Click() Sheets_Open = "List_TV" ' тут вот допустим присваиваем CodeName листа, не то, что отображается в таблице Excel для пользователя ' Здесь начинаем искать лист, не по названию, а по CodeName For Each WBSheets In ActiveWorkbook.Sheets If WBSheets.CodeName = Client_Card.CodeName Then WBSheets.Visible = xlSheetVisible ' Next WBSheets End Sub
[/vba] p.s. код не рабочий... это так мой набросок, моих мыслей... lopuxi
О_о ...и так можно было?
Сообщение отредактировал lopuxi - Вторник, 17.11.2020, 16:47
Ответить
Сообщение Добрый вечер всем гуру VBA и Excel. Я тут бьюсь надо таким вопросом. Допустим у меня в книги есть 4 листа, с заданными в VBA именами - Client_Card, List_OOH, List_Radio и List_TV и все эти листы в книге полностью скрыты (xlSheetVeryHidden) Как мне загнать в переменную не название листа, которое может быть каким угодно, в том числе его может изменить и сам пользователь, а именное кодовое название листа. Получив в переменной кодовое название листа, мне надо его использовать. Таким образом я получаю имя листа... Client_Card.Name List_OOH.Name List_Radio.Name List_TV.Name А такой вариант List_TV.CodeName не дает мне List_TV и я как бы не знаю как достать именно List_TV, что бы поместить его в переменную, допустим Sheets_Open и потом сделать так: [vba]Код
Dim WBSheets As Object Dim Sheets_Open As String Private Sub CommandButton1_Click() Sheets_Open = "List_TV" ' тут вот допустим присваиваем CodeName листа, не то, что отображается в таблице Excel для пользователя ' Здесь начинаем искать лист, не по названию, а по CodeName For Each WBSheets In ActiveWorkbook.Sheets If WBSheets.CodeName = Client_Card.CodeName Then WBSheets.Visible = xlSheetVisible ' Next WBSheets End Sub
[/vba] p.s. код не рабочий... это так мой набросок, моих мыслей... Автор - lopuxi Дата добавления - 17.11.2020 в 16:42
Pelena
Дата: Вторник, 17.11.2020, 17:15 |
Сообщение № 2
Группа: Админы
Ранг: Местный житель
Сообщений: 19404
Репутация:
4555
±
Замечаний:
±
Excel 365 & Mac Excel
Так? [vba]Код
If WBSheets.CodeName = "List_TV" Then
[/vba]или [vba]Код
If WBSheets.CodeName = Sheets_Open Then
[/vba]
Так? [vba]Код
If WBSheets.CodeName = "List_TV" Then
[/vba]или [vba]Код
If WBSheets.CodeName = Sheets_Open Then
[/vba] Pelena
"Черт возьми, Холмс! Но как??!!" Ю-money 41001765434816
Ответить
Сообщение Так? [vba]Код
If WBSheets.CodeName = "List_TV" Then
[/vba]или [vba]Код
If WBSheets.CodeName = Sheets_Open Then
[/vba] Автор - Pelena Дата добавления - 17.11.2020 в 17:15
Hugo
Дата: Вторник, 17.11.2020, 17:48 |
Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация:
790
±
Замечаний:
0% ±
365
Загоняйте в переменную не имя, а сам лист. Ну если нужно его позже использовать. Да и нормально работает [vba]Код
MsgBox List_TV.CodeName
[/vba]
Загоняйте в переменную не имя, а сам лист. Ну если нужно его позже использовать. Да и нормально работает [vba]Код
MsgBox List_TV.CodeName
[/vba] Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Сообщение отредактировал Hugo - Вторник, 17.11.2020, 17:51
Ответить
Сообщение Загоняйте в переменную не имя, а сам лист. Ну если нужно его позже использовать. Да и нормально работает [vba]Код
MsgBox List_TV.CodeName
[/vba] Автор - Hugo Дата добавления - 17.11.2020 в 17:48
lopuxi
Дата: Вторник, 17.11.2020, 17:48 |
Сообщение № 4
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация:
0
±
Замечаний:
0% ±
Excel 2007, 2013
так оно получается так работает? [vba]Код
If WBSheets.CodeName = "List_TV" Then WBSheets.Visible = xlSheetVisible '
[/vba]If WBSheets.CodeName = "List_TV" Then
Я получается притупил, потому как пытался проверить и увидеть кодовые имена листов в Msgbox. Но он всегда выдавал ошибку. For Each WBSheets In ActiveWorkbook.Sheets MsgBox WBSheets.CodeName Next WBSheets То есть я фактически стоял у финиша, да смотрел не в ту сторону . И условие не выдает ошибку и делает видимым тот лист который мне нужно. [vba]Код
Sheets_Open = "List_TV" For Each WBSheets In ActiveWorkbook.Sheets If WBSheets.CodeName = "List_TV" Then WBSheets.Visible = xlSheetVisible ' Next WBSheets
[/vba]
так оно получается так работает? [vba]Код
If WBSheets.CodeName = "List_TV" Then WBSheets.Visible = xlSheetVisible '
[/vba]If WBSheets.CodeName = "List_TV" Then
Я получается притупил, потому как пытался проверить и увидеть кодовые имена листов в Msgbox. Но он всегда выдавал ошибку. For Each WBSheets In ActiveWorkbook.Sheets MsgBox WBSheets.CodeName Next WBSheets То есть я фактически стоял у финиша, да смотрел не в ту сторону . И условие не выдает ошибку и делает видимым тот лист который мне нужно. [vba]Код
Sheets_Open = "List_TV" For Each WBSheets In ActiveWorkbook.Sheets If WBSheets.CodeName = "List_TV" Then WBSheets.Visible = xlSheetVisible ' Next WBSheets
[/vba] lopuxi
О_о ...и так можно было?
Ответить
Сообщение так оно получается так работает? [vba]Код
If WBSheets.CodeName = "List_TV" Then WBSheets.Visible = xlSheetVisible '
[/vba]If WBSheets.CodeName = "List_TV" Then
Я получается притупил, потому как пытался проверить и увидеть кодовые имена листов в Msgbox. Но он всегда выдавал ошибку. For Each WBSheets In ActiveWorkbook.Sheets MsgBox WBSheets.CodeName Next WBSheets То есть я фактически стоял у финиша, да смотрел не в ту сторону . И условие не выдает ошибку и делает видимым тот лист который мне нужно. [vba]Код
Sheets_Open = "List_TV" For Each WBSheets In ActiveWorkbook.Sheets If WBSheets.CodeName = "List_TV" Then WBSheets.Visible = xlSheetVisible ' Next WBSheets
[/vba] Автор - lopuxi Дата добавления - 17.11.2020 в 17:48
Hugo
Дата: Вторник, 17.11.2020, 17:53 |
Сообщение № 5
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация:
790
±
Замечаний:
0% ±
365
[vba]Код
For Each WBSheets In ActiveWorkbook.Sheets MsgBox WBSheets.CodeName Next WBSheets
[/vba] тоже отлично работает!
[vba]Код
For Each WBSheets In ActiveWorkbook.Sheets MsgBox WBSheets.CodeName Next WBSheets
[/vba] тоже отлично работает! Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Сообщение отредактировал Hugo - Вторник, 17.11.2020, 17:53
Ответить
Сообщение [vba]Код
For Each WBSheets In ActiveWorkbook.Sheets MsgBox WBSheets.CodeName Next WBSheets
[/vba] тоже отлично работает! Автор - Hugo Дата добавления - 17.11.2020 в 17:53
lopuxi
Дата: Вторник, 17.11.2020, 18:02 |
Сообщение № 6
Группа: Проверенные
Ранг: Форумчанин
Сообщений: 142
Репутация:
0
±
Замечаний:
0% ±
Excel 2007, 2013
тогда я не знаю какой шаман байян произошел... у меня ошибка на ошибке была. Хотя я даже отдельно, заново все писал в книгили примера. тупняк какой то, не объяснимый у меня случился.
тогда я не знаю какой шаман байян произошел... у меня ошибка на ошибке была. Хотя я даже отдельно, заново все писал в книгили примера. тупняк какой то, не объяснимый у меня случился. lopuxi
О_о ...и так можно было?
Ответить
Сообщение тогда я не знаю какой шаман байян произошел... у меня ошибка на ошибке была. Хотя я даже отдельно, заново все писал в книгили примера. тупняк какой то, не объяснимый у меня случился. Автор - lopuxi Дата добавления - 17.11.2020 в 18:02
Hugo
Дата: Вторник, 17.11.2020, 18:08 |
Сообщение № 7
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3690
Репутация:
790
±
Замечаний:
0% ±
365
Кстати с этими кодовыми по умолчанию помню были сюрпризы, советую их изменять на другие, на свои. Ну на всякий случай... Правильно что поменяли
Кстати с этими кодовыми по умолчанию помню были сюрпризы, советую их изменять на другие, на свои. Ну на всякий случай... Правильно что поменяли Hugo
webmoney: E265281470651 Z422237915069 USDT TRC20: TN8XeEF17o5KPBD9pNwYzNyruycuAc2mVD
Сообщение отредактировал Hugo - Вторник, 17.11.2020, 18:09
Ответить
Сообщение Кстати с этими кодовыми по умолчанию помню были сюрпризы, советую их изменять на другие, на свои. Ну на всякий случай... Правильно что поменяли Автор - Hugo Дата добавления - 17.11.2020 в 18:08