Модераторы: Akina
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Макрос автоматического скрытия столбцов в Excel 
:(
    Опции темы
kokos
Дата 30.7.2003, 07:20 (ссылка)    |    (голосов: 0) Загрузка ... Загрузка ... Быстрая цитата Цитата


Unregistered











Помогите пожалуйста! Использую в работе большие таблицы по несколько тысяч строк и 300 столбцов. Возникает необходимость скрывать столбцы не содержащие данных (для разных строк их бывает по 50 подряд, а затем опять данные) для удобства чтения. При этом первая строка содержит наименование столбцов (все проименованы). Нужны пара кнопок для скрытия и отображения столбцов чтобы данные шли подряд. Например с помощью автофильтра выбрано 20 строк и для них нужно скрыть те столбцы в которых нет ни одной записи кроме наименования столбца. Информацию считываем, затем возвращаем как было. Спасибо!
  Вверх
~FoX~
Дата 14.10.2003, 11:45 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



ActiveCell.ColumnWidth = 0 'скрыть

ActiveCell.ColumnWidth = 100 ' показать

Можно прям на панель кнопки две вытащить и на них макросы навесить


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Alles
Дата 15.10.2003, 02:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



Цитата

ActiveCell.ColumnWidth = 0 'скрыть

ActiveCell.ColumnWidth = 100 ' показать

Можно прям на панель кнопки две вытащить и на них макросы навесить

Вопрос тебе понятен? ему нужен цикл на обработку и если столбец содержит только название то тогда скрыть.
kokos посмотри пример кода у iNot там цикл на поиск определенного значения по шаблону. ты можеш изменить условия и оставить только один цикл (там перебираются все листы книги) на один лист. А в условии поставь : если значений нет - тогда уже используй то что тебе предложил FoX.
PM MAIL ICQ   Вверх
~FoX~
Дата 15.10.2003, 08:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



Private sub CommandButton1_Click()
dim x,y, as integer
For a = 2 to 100 - по количеству строк
for b = 2 to 300 - по кличеству столбцов
if Cells(a,b) <> "" then exit sub
else
ActiveCell.ColumnWidth = 0 'скрыть
ActiveCell.ColumnWidth = 100 ' показать
end if
next b
next a
end sub

Приблизительно так - хотя не проверял на практике )))) Удачи


--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Alles
Дата 16.10.2003, 02:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



Цитата

Private sub CommandButton1_Click()
dim x,y, as integer
For a = 2 to 100 - по количеству строк ' А если файл в динамике и постоянно редактируется confused.gif??
for b = 2 to 300 - по кличеству столбцов' постоянно залезать в циклы и править confused.gif?
if Cells(a,b) <> "" then exit sub ' В условии можно использовать не сами ячейки , а весь диапазон столбца
else  ' так просто будет быстрее...... , а если значения будут на 200 строке ... тогда то закроем то откроем 
ActiveCell.ColumnWidth = 0 'скрыть ' а тут ..confused.gif  сначала скрываем  и тут же показываем ...confused.gif
ActiveCell.ColumnWidth = 100 ' показать
end if
next b
next a
end sub

Ну я так думаю , что если давать код то нужно самому его обкатать ( каюсь и у меня такие грехи были)
Ну а вообще направление правильное, я так думаю что и автор уже понял как эту проблему решить.
Удачи Вам !!!

PM MAIL ICQ   Вверх
~FoX~
Дата 16.10.2003, 08:23 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


НЕ рыжий!!!
****


Профиль
Группа: Участник Клуба
Сообщений: 2819
Регистрация: 8.10.2003
Где: Зеленоград

Репутация: 10
Всего: 68



Alles Да знаю-знаю.......у меня просто времени не было.......ди и в конце-концов просто идею (алгоритм) хотел показать.......))))



--------------------
user posted image
…множественность никогда не следует полагать без необходимости…
PM MAIL WWW ICQ Jabber   Вверх
Alles
Дата 16.10.2003, 08:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 142
Регистрация: 26.6.2003
Где: RUSSIA

Репутация: 2
Всего: 2



smile.gif
PM MAIL ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "VB6"
Akina

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по VB обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Вопросы по реализации алгоритмов рассматриваются здесь
  • Используйте теги [code=vb][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Akina.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | VB6 | Следующая тема »


 




[ Время генерации скрипта: 0.0550 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.