Excel это не сложно
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
24.04.2024, 20:12:41

Войти
Название темы должно отражать её содержание.
Темы типа "ПОМОГИТЕ!!!", "Срочно!", "Не получается сделать", "Нужна помощь" и т.п. будут удаляться без объяснения причин
33 242 Сообщений в 5 457 Тем от 6 761 Пользователей
Последний пользователь: Halfdoor
*
Перейти на сайт Хитрости Надстройка MulTEx Обучающие тренинги Наша группа ВКонтакте
Правила форума Начало Помощь Поиск Календарь Войти Регистрация Выйти
+  Excel это не сложно
|-+  Основные форумы
| |-+  Вопросы по Excel и VBA
| | |-+  Изменение размеров бегунка в полосе прокрутки
Страниц: [1]   Вниз
Печать
Автор Тема: Изменение размеров бегунка в полосе прокрутки  (Прочитано 6120 раз)
0 Пользователей и 1 Гость смотрят эту тему.
Vlad77
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 6


Просмотр профиля E-mail
« : 16.12.2020, 18:12:25 »

Добрый день.
Столкнулся с такой проблемой.
У меня отчет перестраивается в зависимости от выбранных фильтров пользователем и может быть как в 30 столбцов так и в 300.
Я вычисляю последний столбец
   
Код: (vb)
last_col=cells(1, Columns.Count).end(xltoLeft).Column+1

Далее ограничиваю полосу прокрутки
 
Код: (vb)
ThisWorkbook.ActiveSheet.ScrollArea="A1"+Cells(20,last_col).Address


Да все бы хорошо, вот только размер "ползунка" не меняется от выбранного ограничения прокрутки.
И получается, что ползунок имеет один и тот же размер, что на 30 столбцов, что на 300. А хочется каким-либо способом изменять его ширину.
Может кто-то сталкивался с такой проблемой и уже имеет готовое решение.

Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #1 : 16.12.2020, 18:33:11 »

Проблема непонятна. Если фильтруете  (скрываете) столбцы, полоса прокрутки подстраивается под видимый диапазон.
Опишите задачу полнее. Покажите небольшой пример
Записан
Vlad77
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 6


Просмотр профиля E-mail
« Ответ #2 : 16.12.2020, 22:33:12 »

Попробую приложить файл с примером. Тут конечно просто набросок. Нету всего нагромождения кода, который формирует таблицу
Но и на нем видно, что область прокрутки заблокирована до конца таблицы, а сам ползунок ведет себя как-то странно, он маленький и перемещается только вначале полосы.
Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #3 : 16.12.2020, 23:08:15 »

Потому что задействованы все столбцы листа!
Используемый диапазон захватывает все строки и столбцы, в которых есть не только данные, но и примечания, стили, форматы... Что там было, неведомо. Возможно, копировали откуда-то целые строки.

Выделить заголовок первого столбца псправа от таблицы. Ctrl+Shift+стрелка вправо - будут выделены все "пустые" столбцы. Удалить столбцы, обязательно сохранить.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #4 : 17.12.2020, 09:11:22 »

ограничиваю полосу прокрутки
не совсем. Так Вы ограничиваете доступную для прокрутки и выделения область листа. Полоса прокрутки при этом никак не меняется.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Vlad77
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 6


Просмотр профиля E-mail
« Ответ #5 : 17.12.2020, 12:02:44 »

Так вот я и хотел на эту полосу как-то повлиять программно, чтобы подстроить ее под залоченную область листа.
Не очень понятно зачем вообще тогда добавлена возможность ограничения по листу ScrollArea, если ползунок живет в своем мире.
Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #6 : 17.12.2020, 12:22:05 »

Зачем пользовательский диапазон на все столбцы листа - вот это непонятно Улыбка
Записан
Vlad77
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 6


Просмотр профиля E-mail
« Ответ #7 : 17.12.2020, 12:37:17 »

Зачем пользовательский диапазон на все столбцы листа - вот это непонятно Улыбка
Что вы имеете ввиду? Покажите, что я делаю не так и как сделать правильно
Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #8 : 17.12.2020, 12:45:02 »

В четвертом сообщении описано.
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #9 : 17.12.2020, 12:51:27 »

Не очень понятно зачем вообще тогда добавлена возможность ограничения по листу ScrollArea, если ползунок живет в своем мире
затем, что она не для ползунка Улыбка Она сделана, чтобы ограничить пользователю область доступности листа любым способом. Вы просто не можете выйти за пределы ScrollArea, вот и все. А размер ползунка зависит от другого. Каждый инструмент выполняет свою роль и далеко не всегда ту, которую ожидаете Вы  Улыбка
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Vlad77
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 6


Просмотр профиля E-mail
« Ответ #10 : 17.12.2020, 13:19:28 »

Хорошо.
Так можно как-то программно добраться до настроек полосы прокрутки и ползунка?
Или есть только единственный способ - удалять все столбцы и все строки находящихся за пределами отчета и сохранять файл.
Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #11 : 17.12.2020, 13:33:20 »

Ну Вы даете! Улыбка
Вместо того, чтобы привести в порядк лист, ищете обходные пути...Лечим не причину, а последствия...

Размер ползунка зависит от используемой области. А у Вас используемый диапазон - 16 384 столбца.
Если диапазон расширяется в результате каких-то часто выполняемых действий (копирование данных извне, например) и избавиться от расширения диапазона проблематично,  пропишите в макросе удаление столбцов.
« Последнее редактирование: 17.12.2020, 13:44:35 от vikttur » Записан
Vlad77
Новичок
*

Репутация: +0/-0
Офлайн Офлайн

Сообщений: 6


Просмотр профиля E-mail
« Ответ #12 : 17.12.2020, 14:12:04 »

Спасибо за ответы.
Буду удалять. Хоть мне этот способ и не нравится. Но вариантов не много.
Записан
vikttur
Глобальный модератор
Ветеран
*****

Репутация: +124/-0
Офлайн Офлайн

Сообщений: 1 816



Просмотр профиля
« Ответ #13 : 17.12.2020, 15:18:42 »

И мне не нравится )
Правильнее и гораздо лучше - исключить  появление такого диапазона
Записан
Дмитрий Щербаков(The_Prist)
Администратор
Ветеран
*****

Репутация: +485/-0
Офлайн Офлайн

Сообщений: 5 831



Просмотр профиля WWW
« Ответ #14 : 17.12.2020, 15:30:57 »

Но вариантов не много
я бы сказал вменяемых больше и нет - только избавляться от лишнего. Это в любом случае правильнее, т.к. файл станет весить меньше, работать быстрее. Все остальные методы уменьшить ползунок сравнимы с удалением гланд через задний проход. Серьезно.
Записан

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы...
Пункты приёма Спасибов:    -41001332272872  -R298726502453
Страниц: [1]   Вверх
Печать
Перейти в:  

Powered by MySQL Powered by PHP Powered by SMF 1.1.21 | SMF © 2006-2011, Simple Machines Valid XHTML 1.0! Valid CSS!
Яндекс.Метрика Рейтинг@Mail.ru