![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Новичок
Джуниор
Регистрация: 12.03.2010
Сообщений: 2
|
![]()
Добрый день!
Помогите реализовать такую задумку: Нужна автонумерация столбцов. причем при скрытии столбцов нумерация не должна прерываться, а должна продолжаться как будто этих скрытых столбцов нет. Первый столбец с номером 1 можно считать константным и нескрываемым. Если сделать простую формулу RC[-1]+1 , то скрытие столбцов нумерацию не меняет. т.е. если было 1,2,3. при скрытии 2го остается 1,3, а надо 1,2. Стандартную функцию с нужным функционалом не нашел. Решил написать свою. Идея простая - если текущий столбец не скрыт, то берем для него номер предыдущего столбца + 1, если скрыт = оставляем номер не изменным (все равно его видно не будет). Получилось такое: Function GetNum(P, R)P - предыдущая ячейка, R - текущаяIf R.ColumnWidth > 0 Then GetNum = P + 1 Else GetNum = PEnd Function Недостатки: 1. по идее, текущую ячейку передавать не надо т.к. мы находимся в ней. недостаток не критичный. 2. не происходит автоматического пересчета при скрытии столбца. т.е. если изменить значение первого столбца, то все расчитается корректно по цепочке с учетом скрытых. а если просто выделить столбец и скрыть - ничего не происходит, нумерация остается прежней. не запускается "автопересчет". Этот недостаток критический т.к. собственно для автоматической перенумерации все и затевается. P.S. Автоматические вычисления в параметрах Excel включены. |
![]() |
![]() |
![]() |
#2 |
Форумчанин
Регистрация: 13.01.2010
Сообщений: 410
|
![]()
вот пример. повесил макрос на селекшон чейнж. то есть пересчитывается при каждом изменении положения курсора.
Вообщем задумка есть, прикрутите куда надо) |
![]() |
![]() |
![]() |
#3 |
Форумчанин
Регистрация: 14.02.2009
Сообщений: 753
|
![]()
можно формулой
Код:
Код:
|
![]() |
![]() |
![]() |
#4 |
Новичок
Джуниор
Регистрация: 12.03.2010
Сообщений: 2
|
![]()
Спасибо!
Пересчет в Worksheet_SelectionChange помогает. Не идеально (приходится на другую ячейку "встать"), но вполне работает. Последний раз редактировалось cons; 12.03.2010 в 13:12. Причина: граматическая ошибка |
![]() |
![]() |
![]() |
#5 |
Пользователь
Регистрация: 10.03.2010
Сообщений: 25
|
![]()
Здравствуйте! Извеняюсь что вклинилась в тему, но у меня почти такая же проблемка, только с учётом скрытых строк и плюс есть объединённые ячейки которые считать не надо.
Заранее спасибо! |
![]() |
![]() |
![]() |
#6 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Посмотрите вложение. При открытии файла, перехватываются ID команд скрытия и отображения строк и столбцов в соответствующих контекстных меню и назначается свой макрос, который скрывает и отображает строки и столбцы, а также перенумеровывает по порядку видимые строки (столбцы) во всем рабочем диапазоне листа. Попробуйте.
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#7 |
Пользователь
Регистрация: 10.03.2010
Сообщений: 25
|
![]()
SAS888 спасибо вам за помощь!
Но у меня скрытие строк, это следствие работы фильтра, и поэтому вся процедура заканчивается на Selection.Address = Selection.EntireRow.Address, оно у меня FALSE. Возможно вы мне подскажите как выйти из этого положения, я пробовала видо изменить, ваш код, но тогда он не игнарирует объединёные ячейки и нумерует всё подряд. Вот так. Заранее спсибо! |
![]() |
![]() |
![]() |
#8 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Для автофильтра (об нужно было сказать сразу), естественно, предложенный выше метод не годится.
Не хочу гадать и самостоятельно создавать файл, т.к. точно не знаю, как он должен выглядеть. Прикрепите пример файла с Вашими объединенными ячейками. На другом листе покажите то, что Вам хотелось бы видеть после работы автофильтра (вставьте данные "вручную").
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
#9 |
Пользователь
Регистрация: 10.03.2010
Сообщений: 25
|
![]()
SAS888 вот файл, надеюсь будет понятно!
Заранее спасибо! |
![]() |
![]() |
![]() |
#10 |
Старожил
Регистрация: 05.12.2007
Сообщений: 4,180
|
![]()
Посмотрите вложение. Что не так?
Чем шире угол зрения, тем он тупее.
|
![]() |
![]() |
![]() |
|
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Автоматическая нумерация договоров, добавление контрагентов | kitten2 | Microsoft Office Word | 1 | 22.12.2009 15:24 |
Автоматическая нумерация строк в DBGrid | Len@09 | БД в Delphi | 10 | 02.11.2009 17:41 |
Удаление скрытых столбцов после фильтрации. | Garrison | Microsoft Office Excel | 7 | 02.09.2009 16:27 |
автоматическая нумерация | Screame | Microsoft Office Excel | 4 | 01.08.2009 00:28 |
Автоматическая нумерация документов | Лука | Microsoft Office Excel | 5 | 15.06.2009 21:59 |