|
|
|
Удержание активной ячейки в пределах некоторого расстояния до краёв.
|
|||
|---|---|---|---|
|
#18+
Читая тему Управляемый скролинг , вспомнилось нечто похожее Украдено с другого форума. ***************************************************************************** Работая непосредственно с книгой xls, при перемещении по листу иногда нужно, чтобы было видно несколько строк и (или) столбцов до границы окна книги. Т. к. с ходу сделать подобный макрос не получилось и пришлось некоторое время повозиться, то выкладываю получившийся код здесь. Может быть, кому-нибудь пригодится. В модуль листа в Worksheet_SelectionChange поместить следующий код. Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. Некоторое неудобство (как бы «ненужные» скачки вверх-вниз) возникает при переходе активной ячейки с высоких строк на низкие и наоборот, либо около границ таких ячеек, особенно при небольшом размере окна приложения. По ходу дела возник вопрос. Не совсем в тему. Например, область C3:E10 объединена. Делаем активной ячейку A6. И стрелкой вправо сдвигаем активную ячейку сначала на B6, потом ещё правее. Получаем выделенную объединённую ячейку C3:E10. Затем опять жмём стрелку вправо. И выделяется ячейка F6, а не например, F3 – как бы с верхней строки объединённой предыдущей ячейки. Т. е. как-то Excel запоминает пред-предыдущее значение номера строки. Как и откуда взять это значение, не используя переменные, например, на уровне модуля? **************************************************************************** Это макрос для тех ленивых (как я), кому в лом сделать движение средним пальцем - колёсиком мыши прокрутить окно, чтоб были видны ещё строки над или под выделенной ячейкой. Понять цель макроса просто. Вставить его в модуль листа. Побегать по листу мышью или стрелками клавиатуры вверх/вниз до краёв и посмотреть, что получается. Конечно же, код не является оптимальным. Наверняка можно сделать лучше. Про нужность и удобство в работе пусть каждый сам решает. Предыдущий макрос работает в зависимости от нужного количества видимых строк до краёв окна. Следующий пример макроса работает в зависимости от расстояния до краёв в пунктах (points). Код: plaintext 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. Расстояние до краёв устанавливается переменной FixH (здесь FixH = 51, что равно 18 мм). MinH - это минимальный размер окна. Проверил так: свернул окно до самого не хочу и посмотрел его высоту. У меня в Excel 97 при моих параметрах окна это значение получилось 45.75 Так же, как и в первом примере, макрос для строк. Для столбцов можно переделать легко. В отличие от первого макроса, второй работает также и с выделенной областью. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 23.01.2008, 14:33:21 |
|
||
|
|

start [/forum/topic.php?fid=61&tid=2181562]: |
0ms |
get settings: |
4ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
42ms |
get topic data: |
6ms |
get forum data: |
1ms |
get page messages: |
14ms |
get tp. blocked users: |
1ms |
| others: | 199ms |
| total: | 280ms |

| 0 / 0 |
