Домашняя страница Undo Do New Save Карта сайта Обратная связь Поиск по форуму
МИР MS EXCEL - Гость.xls

Вход

Регистрация

Напомнить пароль

 

= Мир MS Excel/Показать один скрытый столбец - Мир MS Excel

Старая форма входа
  • Страница 1 из 1
  • 1
Модератор форума: китин, _Boroda_  
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Показать один скрытый столбец (Макросы/Sub)
Показать один скрытый столбец
jurafenix Дата: Пятница, 30.12.2016, 11:50 | Сообщение № 1
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Добрый день, уважаемые форумчане, и с наступающим вас!
Очень часто по работе сталкиваюсь с такой задачей, но никак не могу придумать её автоматизацию.

Задача:
Есть ряд скрытых столбцов (от 1 до 10). Нужно показать самый левый из них. И так делать при каждом вызове макроса. Может кто поможет?)

Заранее спасибо!
 
Ответить
СообщениеДобрый день, уважаемые форумчане, и с наступающим вас!
Очень часто по работе сталкиваюсь с такой задачей, но никак не могу придумать её автоматизацию.

Задача:
Есть ряд скрытых столбцов (от 1 до 10). Нужно показать самый левый из них. И так делать при каждом вызове макроса. Может кто поможет?)

Заранее спасибо!

Автор - jurafenix
Дата добавления - 30.12.2016 в 11:50
Manyasha Дата: Пятница, 30.12.2016, 15:29 | Сообщение № 2
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
jurafenix, здравствуйте, так?
[vba]
Код
Sub showColumn()
    Dim lc&, j&
    lc = ActiveSheet.UsedRange.Columns.Count + ActiveSheet.UsedRange.Column - 1
    On Error Resume Next
    For j = lc To 1 Step -1
        If Columns(j).Hidden = True And (Columns(j - 1).Hidden = False Or j = 1) Then
            Columns(j).Hidden = False
        End If
    Next j
End Sub
[/vba]


ЯД: 410013299366744 WM: R193491431804
 
Ответить
Сообщениеjurafenix, здравствуйте, так?
[vba]
Код
Sub showColumn()
    Dim lc&, j&
    lc = ActiveSheet.UsedRange.Columns.Count + ActiveSheet.UsedRange.Column - 1
    On Error Resume Next
    For j = lc To 1 Step -1
        If Columns(j).Hidden = True And (Columns(j - 1).Hidden = False Or j = 1) Then
            Columns(j).Hidden = False
        End If
    Next j
End Sub
[/vba]

Автор - Manyasha
Дата добавления - 30.12.2016 в 15:29
Alex_ST Дата: Пятница, 30.12.2016, 22:05 | Сообщение № 3
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Марина, это же не удаление/добавление столбцов, а только изменение их ширины, поэтому определять последний столбец и делать цикл с шагом Step -1 не нужно.
Да и jurafenix хочет показать не все скрытые, а только самый левый.
К тому же не известно, каким способом скрыт столбец. шириной или "Скрыть".
Поэтому можно сделать универсальнее проще: [vba]
Код
Sub ShowFirstHiddenColumn()
    Dim C&
    For C = 1 To ActiveSheet.UsedRange.Columns.Count
        If Columns(C).Hidden Or Columns(C).ColumnWidth = 0 Then Columns(C).Hidden = False: Exit For
    Next C
End Sub
[/vba]



С уважением,
Алексей
MS Excel 2003 - the best!!!


Сообщение отредактировал Alex_ST - Суббота, 31.12.2016, 13:25
 
Ответить
СообщениеМарина, это же не удаление/добавление столбцов, а только изменение их ширины, поэтому определять последний столбец и делать цикл с шагом Step -1 не нужно.
Да и jurafenix хочет показать не все скрытые, а только самый левый.
К тому же не известно, каким способом скрыт столбец. шириной или "Скрыть".
Поэтому можно сделать универсальнее проще: [vba]
Код
Sub ShowFirstHiddenColumn()
    Dim C&
    For C = 1 To ActiveSheet.UsedRange.Columns.Count
        If Columns(C).Hidden Or Columns(C).ColumnWidth = 0 Then Columns(C).Hidden = False: Exit For
    Next C
End Sub
[/vba]

Автор - Alex_ST
Дата добавления - 30.12.2016 в 22:05
Wasilich Дата: Суббота, 31.12.2016, 08:20 | Сообщение № 4
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
А еще, Manyasha, со Step-1, если столбцы скрыты не подряд, а к примеру по группам, то отобразятся все левые каждой группы. :)


Сообщение отредактировал Wasilich - Суббота, 31.12.2016, 08:25
 
Ответить
СообщениеА еще, Manyasha, со Step-1, если столбцы скрыты не подряд, а к примеру по группам, то отобразятся все левые каждой группы. :)

Автор - Wasilich
Дата добавления - 31.12.2016 в 08:20
Manyasha Дата: Суббота, 31.12.2016, 12:17 | Сообщение № 5
Группа: Модераторы
Ранг: Старожил
Сообщений: 2198
Репутация: 898 ±
Замечаний: 0% ±

Excel 2010, 2016
Да, это я поторопилась. Писала до этого матрос для удаления столбцов, видимо на автомате наваяла))
Не Маша я, Марина :)


ЯД: 410013299366744 WM: R193491431804
 
Ответить
СообщениеДа, это я поторопилась. Писала до этого матрос для удаления столбцов, видимо на автомате наваяла))
Не Маша я, Марина :)

Автор - Manyasha
Дата добавления - 31.12.2016 в 12:17
Alex_ST Дата: Суббота, 31.12.2016, 13:26 | Сообщение № 6
Группа: Друзья
Ранг: Участник клуба
Сообщений: 3209
Репутация: 609 ±
Замечаний: 0% ±

2003
Не Маша я, Марина
Прошу прощения. Поправил.
С НАСТУПАЮЩИМ!
wine



С уважением,
Алексей
MS Excel 2003 - the best!!!
 
Ответить
Сообщение
Не Маша я, Марина
Прошу прощения. Поправил.
С НАСТУПАЮЩИМ!
wine

Автор - Alex_ST
Дата добавления - 31.12.2016 в 13:26
jurafenix Дата: Понедельник, 09.01.2017, 11:07 | Сообщение № 7
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Sub ShowFirstHiddenColumn()
Dim C&
For C = 1 To ActiveSheet.UsedRange.Columns.Count
If Columns©.Hidden Or Columns©.ColumnWidth = 0 Then Columns©.Hidden = False: Exit For
Next C
End Sub


Добрый день!
Увы, не работает(( Даже на пустом файле скрыл три столбца, макрос их не показывает((
 
Ответить
Сообщение
Sub ShowFirstHiddenColumn()
Dim C&
For C = 1 To ActiveSheet.UsedRange.Columns.Count
If Columns©.Hidden Or Columns©.ColumnWidth = 0 Then Columns©.Hidden = False: Exit For
Next C
End Sub


Добрый день!
Увы, не работает(( Даже на пустом файле скрыл три столбца, макрос их не показывает((

Автор - jurafenix
Дата добавления - 09.01.2017 в 11:07
nilem Дата: Понедельник, 09.01.2017, 11:28 | Сообщение № 8
Группа: Авторы
Ранг: Старожил
Сообщений: 1613
Репутация: 563 ±
Замечаний: 0% ±

Excel 2013, 2016
если файл пустой, то и UsedRange пусто (Nothing)
заполните какими-нибудь данными 1-ю строчку на листе, потом скройте некоторые столбцы и запустите макрос.
Должно работать


Яндекс.Деньги 4100159601573
 
Ответить
Сообщениеесли файл пустой, то и UsedRange пусто (Nothing)
заполните какими-нибудь данными 1-ю строчку на листе, потом скройте некоторые столбцы и запустите макрос.
Должно работать

Автор - nilem
Дата добавления - 09.01.2017 в 11:28
Wasilich Дата: Понедельник, 09.01.2017, 14:12 | Сообщение № 9
Группа: Друзья
Ранг: Старожил
Сообщений: 1232
Репутация: 326 ±
Замечаний: 0% ±

2003
пустом файле скрыл три столбца, макрос их не показывает

[vba]
Код
ActiveSheet.UsedRange.Columns.Count
[/vba]Определяет № последнего заполненного столбца диапазона таблицы. И цикл For будет повторяться до этого №-ра. Так, какой же № заполненного столбца он определит на пустом листе?
На "пальцах" вроде так. :)


Сообщение отредактировал Wasilich - Понедельник, 09.01.2017, 14:17
 
Ответить
Сообщение
пустом файле скрыл три столбца, макрос их не показывает

[vba]
Код
ActiveSheet.UsedRange.Columns.Count
[/vba]Определяет № последнего заполненного столбца диапазона таблицы. И цикл For будет повторяться до этого №-ра. Так, какой же № заполненного столбца он определит на пустом листе?
На "пальцах" вроде так. :)

Автор - Wasilich
Дата добавления - 09.01.2017 в 14:12
jurafenix Дата: Вторник, 17.01.2017, 13:54 | Сообщение № 10
Группа: Пользователи
Ранг: Участник
Сообщений: 66
Репутация: 1 ±
Замечаний: 0% ±

Excel 2010
Большое спасибо, очень сильно помогли!)
 
Ответить
СообщениеБольшое спасибо, очень сильно помогли!)

Автор - jurafenix
Дата добавления - 17.01.2017 в 13:54
Мир MS Excel » Вопросы и решения » Вопросы по VBA » Показать один скрытый столбец (Макросы/Sub)
  • Страница 1 из 1
  • 1
Поиск:

Яндекс.Метрика Яндекс цитирования
© 2010-2024 · Дизайн: MichaelCH · Хостинг от uCoz · При использовании материалов сайта, ссылка на www.excelworld.ru обязательна!