Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Microsoft Office и VBA программирование > Microsoft Office Excel
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 03.05.2013, 18:58   #11
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

СПАСИБО ОГРОМНОЕ ВСЕ РАБОТАЕТ
МОЖЕТЕ ПОМОЧЬ СО СКРЫТИЕМ СТОЛБЦОВ ТОЖЕ РАБОТАЕТ МЕДЛЕННО ИЛИ МОЖНО ИСПОЛЬЗОВАТЬ ВАШ ПОСТ №6,8 ?
НА ЛИСТЕ "РАБОЧИЙ ПЛАН" ЕСТЬ ДИАПАЗОН ЯЧЕЕК "J12:BFM12",В КОТОРЫХ СОДЕРЖАТСЯ ФОРМУЛЫ И ЕСЛИ ЯЧЕЙКА РАВНА 0 ТО СКРЫТЬ СТОЛБЕЦ
ЯЧЕЙКИ НЕ ОБЪЕДЕНЕНЫ
Вложения
Тип файла: rar Книга1.rar (1.42 Мб, 8 просмотров)

Последний раз редактировалось VITA11111; 03.05.2013 в 19:05.
VITA11111 вне форума Ответить с цитированием
Старый 03.05.2013, 21:07   #12
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

См. вложение.
Вложения
Тип файла: rar Книга1.rar (1.54 Мб, 8 просмотров)
Чем шире угол зрения, тем он тупее.
SAS888 вне форума Ответить с цитированием
Старый 03.05.2013, 22:03   #13
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

не получается [J12:BFM12] содержат ссылки на значения в других таблицах кажется поэтому не скрывается


Код:
Sub qq()
    Dim x As Range, y As Range, z As Range: Application.ScreenUpdating = False
    Set x = [J12:BFM12]: x.EntireColumn.Hidden = False: Set z = x.Find(0)
    If z Is Nothing Then Exit Sub
    Set y = x.RowDifferences(z)
    x.EntireColumn.Hidden = True: y.EntireColumn.Hidden = False
End Sub
попробую разобратся функция address

Последний раз редактировалось VITA11111; 03.05.2013 в 22:12.
VITA11111 вне форума Ответить с цитированием
Старый 03.05.2013, 22:57   #14
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

вроде получилось проверте пожалуйста


Код:
Sub скрытие_столб_Click()
    Dim x As Range, y As Range, z As Range, fst As String: Application.ScreenUpdating = False
    With Sheets("рабочий план")
    Set x = [J12:BFM12]
    End With
    x.EntireColumn.Hidden = False: Set z = x.Find(0, , xlValues, xlWhole)
    If Not z Is Nothing Then
    fst = z.Address
    Do
        If y Is Nothing Then Set y = z Else Set y = Union(y, z)
            Set z = x.FindNext(z)
            Loop While fst <> z.Address
        End If
    If Not y Is Nothing Then y.EntireColumn.Hidden = True
End Sub
VITA11111 вне форума Ответить с цитированием
Старый 04.05.2013, 07:04   #15
SAS888
Старожил
 
Аватар для SAS888
 
Регистрация: 05.12.2007
Сообщений: 4,180
По умолчанию

Все верно. Код рабочий... Только пропущена точка в конструкции With... End With. В данном случае ссылка применяется всего 1 раз. Поэтому, можно просто записать
Код:
Set x = Sheets("рабочий план").[J12:BFM12]
Зачем Вы прикрепляете файл, который не соответствует действительности. В Вашем файле в диапазоне "J12:BFM12" нет ссылок. Поэтому я и предложил более быстродействующий вариант, который работоспособен только с значениями.
В данной задаче столбцов для скрытия значительно больше, чем тех, которые скрывать не нужно. Поэтому, быстрее будет работать следующий код:
Код:
Sub qq()
    Dim x As Range, y As Range, i As Long, a(): Application.ScreenUpdating = False
    Set x = Sheets("рабочий план").[J12:BFM12]: x.EntireColumn.Hidden = False: a = x.Value
    For i = 1 To UBound(a, 2)
        If a(1, i) = 0 Then If y Is Nothing Then Set y = Cells(12, i + 9) Else Set y = Union(y, Cells(12, i + 9))
    Next
    If Not y Is Nothing Then y.EntireColumn.Hidden = True
End Sub
Пример во вложении.
Вложения
Тип файла: rar Книга1.rar (1.52 Мб, 10 просмотров)
Чем шире угол зрения, тем он тупее.

Последний раз редактировалось SAS888; 04.05.2013 в 08:24.
SAS888 вне форума Ответить с цитированием
Старый 04.05.2013, 23:44   #16
VITA11111
Пользователь
 
Регистрация: 03.07.2012
Сообщений: 50
По умолчанию

спасибо все работает быстрее
VITA11111 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как можно ускорить скорость макроса? staniiislav Microsoft Office Excel 7 21.12.2011 09:44
Как увеличить скорость работы? (C#) Serg121 Помощь студентам 4 06.12.2011 17:19
Как можно уменьшить время выполнения запроса. ajevgen PHP 4 07.09.2011 15:55
как увеличить скорость скачивания!!! alex(21) Свободное общение 16 10.09.2010 19:49
как увеличить скорость заполнения данных в mdb из excel Tanuska___:) БД в Delphi 4 22.04.2010 10:50