Remkomplekty.ru

IT Новости из мира ПК
1 просмотров
Рейтинг статьи
1 звезда2 звезды3 звезды4 звезды5 звезд
Загрузка...

Размер листа excel

Размер листа в Excel

11 ответов

Скорее всего на одном листе больше строк хранить нельзя, т.к. это потребует изменения типа числовой переменной Excel, в которой хранится номер строки.
Ты можешь использовать другие листы (книги) Excel. Но в принципе для работы с БД Microsoft придумала Access

Все точно, 65635 это техн. максимум.
На счет Access тебе правильно посоветовали, ипортни свой xls файл в базу Access и делай там что тебе надо. Когда надо будет вывести результат, в Access есть в Сервисе — анализ данных в MSExcel. Если надо будет вывести итоговую таблицу в Excel размером больше 65 тыс строк, то я обычно делаю так: делаю запрос на создание новой таблицы, потом эту таблицу делю на две/три и т.д. (чтобы в каждой не больше 65 тыс строк было), а потом правой кнопкой щелкаешь — экспорт в Excel-файл. После чего эти 65 тыс. листы можно собрать в одну книгу, если очень хочется.

Смысла работать с данными в Excel при таком объеме — никакого, тормоза полнейшие.

Смысла работать с данными в Excel при таком объеме — никакого, тормоза полнейшие.

Вы будите смеяться, но я эти данные копирую из Access’а в Ехсеl. Делаю так для того чтобы пользоваться VBA, т.к. работать в Access’е с VBA допетрить не могу, может, тогда подскажете мне как реализовать следующее:
Есть така таблица:
REGNOM DATO
10165 15.02.01
10165 22.05.01
10165 01.09.01
1023 01.04.01
1023 22.12.01
10292 05.08.01
10292 20.10.01
и т.д.
так вот нужно сделать другой столбец в котором определялось бы количество дней между смежными датами для одного и тогоже номера. Для следующего номера все с опять с нуля. Далее из полученного столбца нужно ссделать еще два в которых бы было: кол-во повторяющихся дней и скольких дней (нпример. 1 день — 15раз, 2 дня — 55раз и т.д.) этих записей будет меньше чем исходных. Как это сделать в Access’е ума не приложу.
Посоветуйте!

Вы будите смеяться, но я эти данные копирую из Access’а в Ехсеl. Делаю так для того чтобы пользоваться VBA, т.к. работать в Access’е с VBA допетрить не могу, может, тогда подскажете мне как реализовать следующее:
Есть така таблица:
REGNOM DATO
10165 15.02.01
10165 22.05.01
10165 01.09.01
1023 01.04.01
1023 22.12.01
10292 05.08.01
10292 20.10.01
и т.д.
так вот нужно сделать другой столбец в котором определялось бы количество дней между смежными датами для одного и тогоже номера. Для следующего номера все с опять с нуля. Далее из полученного столбца нужно ссделать еще два в которых бы было: кол-во повторяющихся дней и скольких дней (нпример. 1 день — 15раз, 2 дня — 55раз и т.д.) этих записей будет меньше чем исходных. Как это сделать в Access’е ума не приложу.
Посоветуйте!

если кодишь в VB, то подключи бд access и используй DBGRID, и динамически его коверкай как хочешь..
А если делать это непосредственно в accesse, то используй функцию diffdate и создавай поля с помощью функции createfield, это делается так:

Set fil = tbl.CreateField(«date», dbDate)
tbl.Fields.Append fil
и все.
Удачи!!

Вы будите смеяться, но я эти данные копирую из Access’а в Ехсеl. Делаю так для того чтобы пользоваться VBA, т.к. работать в Access’е с VBA допетрить не могу, может, тогда подскажете мне как реализовать следующее:
Есть така таблица:
REGNOM DATO
10165 15.02.01
10165 22.05.01
10165 01.09.01
1023 01.04.01
1023 22.12.01
10292 05.08.01
10292 20.10.01
и т.д.
так вот нужно сделать другой столбец в котором определялось бы количество дней между смежными датами для одного и тогоже номера. Для следующего номера все с опять с нуля. Далее из полученного столбца нужно ссделать еще два в которых бы было: кол-во повторяющихся дней и скольких дней (нпример. 1 день — 15раз, 2 дня — 55раз и т.д.) этих записей будет меньше чем исходных. Как это сделать в Access’е ума не приложу.
Посоветуйте!

Странно что у тебя какие-то проблемы с VBE в Access, он практически такой же как и VBA Word, Excel, по крайне мере в той части что касается работы с датами, строками и т.д.

Что касается твоей задачки, то сразу возникает несколько вопросов:
непонятно структура твоей таблицы, это интересно в какие же строки надо писать кол-во дней между смежными датами одного и того же номера.
REGNOM DATO
10165 15.02.01 ?
10165 22.05.01 ?
10165 01.09.01 ?
1023 01.04.01 ?
1023 22.12.01 ?
10292 05.08.01 ?
10292 20.10.01 ?
ну и с другими столбцами тоже что-то не очень понятно:
» скольких дней этих записей будет меньше чем исходных» — каких исходных? откуда че берется и как енто вычисляется?

Что касается способа решения, то в Access лучше всего для таких задач использовать язык запросов SQL (с выражениями на VB), для того он и создавался чтобы работать с табличными данными.

To SergeySV.
На самом деле, я не так хорошо разбираюсь в VBA, поэтому не знаю всех возможностей :(.
По поводу задачки:
Есть таблица (она на самом деле больше):
10165 15.02.01
10165 22.05.01
10165 01.09.01
1023 02.01.00
1023 26.02.00
1023 26.04.00
1023 29.04.00
1023 22.06.00

Из неё я получаю такой столбец:
0 ->(«0» Для заполнения пустой строки и только)
96 (здесь уже пошли операции вычитания)
102 (здесь уже пошли операции вычитания)
0
55
60
3
54

«непонятно структура твоей таблицы, это интересно в какие же строки надо писать кол-во дней между смежными датами одного и того же номера.» — это не очень то и важно, главное результирующие столбцы.

Из этого столбца я получаю следующие два (рузультирующие):
0 «скольких дней» 2 (повторяются 2 раза, тот же Count)
3 1 раз
54 1 раз
55 1 раз
и т.д.
И вот эти два столбца и есть те которые мне нужны.
Подскажи, как это реализовать.

To vladsoft.
Я попробую динамически подключить, хотя я в этом пока не смыслю. Буду разбираться 🙂

Ну вот например так можно сделать.

Я завел в базе таблицу с полями REGNOM и DATO, а также добавил еще поле счетчик «kod». ВАЖНО: номера в этом поле «kod», должны идти подряд, без пропусков, так и будет если только вручную не начать удалять записи. (В принципе можно и без этого поля обойтись — через статическую переменную, тогда придется немного усложнить код доп. проверками по обнулению этой переменной в функции в случае повторного запуска запроса. Код станет не таким наглядным а функциональность не поменяется)

На вкладке «Запросы» два запроса(Запрос1 и Запрос2)
Запрос1- высчитывает кол-во дней между двумя соседними REGNOM и показывает их в поле CountDays
Запрос2 — основан на запросе «Запрос1» и группирует данные по полю CountDays (т.е. записи с одинаковыми значениями в CountDays собирает в одну строку) и при этом вычисляет кол-во этих одинаковых CountDays (результат выводит в поле CountIntervals)/ Ну вообщем стандартный запрос с группировкой данных.

Читать еще:  Visual basic в excel руководство

Как узнать размер листа в Excel?

есть таблица на листе..
как узнать сколько столбцов до первого пустого столбца.. и соответственно строк — до первой пустой строки

но например в первой строке заполнено 6 столбцов, а во второй — 10

т.е. вот абстрактный пример:

пусть знак решетки — это заполненные ячейки таблицы

есть какие-нибудь стандартные функции?

Добавлено через 1 минуту
криво пример вставился

Как узнать имя активного листа в Excel-е?
И еще вопрос до кучи. Как узнать имя активного листа в Excel-е?

Как узнать Item листа в книге Excel
есть большая книга (листов больше 1000) Не ругайте — так удобнее мне для своих целей Name листов.

Как узнать точную высоту листа в Excel?
Суммирование всех ячеек до первого HPageBreak не подходит.

Как сделать размер листа А6 в Excel (из Delphi)
Здравствуйте! Как сделать размер листа А6 в экселе, подскажите пожалуйста

а я пробую ручками проверять, у меня просто стрелкой переходи вправа или вниз, на одну ячейку

Добавлено через 1 минуту
да и код не хочет выполняться, ругается на ошибки

код не хочет работать((

Добавлено через 33 секунды
у меня 10 офис, может в этом проблема?

Чтобы увидеть результат: ViewImmediate Window.

Но чтобы информация была достоверная, сначала надо сохранить книгу (это связано с тем, что после удаления текста, где-то сохраняется информация в Excel о количестве строк и столбцов до удаления). После сохранения книги — эта информация уходит.

Преимущество этого способа в том, что определяется последняя строка или столбец, даже если хотя бы одна ячейка заполнена в строке или столбце.

во, толковый ответ, осталось его проверить)

Добавлено через 1 минуту
всё работает, спасибо

Это не универсальный способ, но тоже как вариант.

Да, было бы классно иметь в объектной модели больше удобных универсальных средств!

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Как задать соответствие одних значений, одного листа Excel, значениям другого листа Excel
Есть лист Excel ,значения в нем постоянны и находятся на одном месте (в одном столбце и в одной.

Размер листа Excel при экспорте
а не подскажите как сделать при экспорте из делфи в excel вот такую настройку

Как узнать размер строки как размер массива
const char* test_str = "01234×00 789"; //очевидно, что strlen(test_str) == 5; sizeof(test_str).

Считать данные с листа EXCEL в Listview. Выбор листа в Combobox
Как считать с листа Excel — где его имя — выбранное значение из combobox. Если я правильно понял то.

Как уменьшить размер файла и ускорить его

Если в один прекрасный момент вы осознаете, что ваш основной рабочий файл в Excel разбух до нескольких десятков мегабайт и во время открытия файла можно смело успеть налить себе кофе, то попробуйте пробежаться по описанным ниже пунктам — возможно один или несколько из них укоротят вашего «переростка» до вменяемых размеров и разгонят его «тормоза» 🙂

Проблема 1. Используемый диапазон листа больше, чем нужно

Если ваша таблица занимает 5 на 5 ячеек, то это отнюдь не означает, что Excel запоминает при сохранении этого файла только 25 ячеек с данными. Если вы в прошлом использовали какие-либо ячейки на этом листе, то они автоматически включаются в используемый диапазон (так называемый Used Range), который и запоминается при сохранении книги. Проблема в том, что при очистке используемых ячеек Excel далеко не всегда автоматически исключает их из используемого диапазона, т.е. начинает запоминать в файле больше данных, чем реально имеется.

Проверить это просто – нажмите на клавиатуре сочетание клавиш Ctrl+End и посмотрите куда переместится активная ячейка. Если она прыгнет на фактическую последнюю ячейку с данными на листе – отлично. А если вдруг ускачет сильно правее и/или ниже «в пустоту» – дело плохо: все эти ненужные пустые ячейки Excel тоже запоминает внутри файла.

Лечится это, тем не менее, достаточно легко:

  1. Выделите первую пустую строку под вашей таблицей
  2. Нажмите сочетание клавиш Ctrl+Shift+стрелка вниз – выделятся все пустые строки до конца листа.
  3. Удалите их, нажав на клавиатуре Ctrl+знак минус или выбрав на вкладке Главная – Удалить – Удалить строки с листа (Home – Delete – Delete rows) .
  4. Повторите то же самое со столбцами.
  5. Повторите все вышеописанные процедуры на каждом листе, где при нажатии на Ctrl+End активная ячейка перемещается не на фактическую последнюю ячейку с данными а «в пустоту» ниже и/или правее.
  6. Сохраните файл (обязательно, иначе изменения не вступят в силу!)

Если в вашей книге очень много таких листов, то проще, наверное, использовать короткий макрос.

Проблема 2. Используется старый формат XLS вместо новых XLSX, XLSM и XLSB

Много лет и версий подряд еще с начала девяностых в Excel был один формат файлов — XLS. Это, конечно, убирало проблемы совместимости, но, сам по себе, этот формат давно устарел и имел много неприятных недостатков (большой размер, непрозрачность внутренней структуры данных, легкую повреждаемость и т.д.)

Начиная с верии Excel 2007 Microsoft ввела новые форматы сохранения файлов, использование которых заметно облегчает жизнь и — ваши файлы:

  • XLSX — по сути является зазипованным XML. Размер файлов в таком формате по сравнению с Excel 2003 меньше, в среднем, в 5-7 раз.
  • XLSM — то же самое, но с поддержкой макросов.
  • XLSB — двоичный формат, т.е. по сути — что-то вроде скомпилированного XML. Обычно в 1.5-2 раза меньше, чем XLSX. Единственный минус: нет совместимости с другими приложениями кроме Excel, но зато размер — минимален.

Вывод: всегда и везде, где можно, переходите от старого формата XLS (возможно, доставшегося вам «по наследству» от предыдущих сотрудников) к новым форматам.

Проблема 3. Избыточное форматирование

Сложное многоцветное форматирование, само-собой, негативно отражается на размере вашего файла. А условное форматирование еще и ощутимо замедляет его работу, т.к. заставляет Excel пересчитывать условия и обновлять форматирование при каждом чихе.

Оставьте только самое необходимое, не изощряйтесь. Особенно в тех таблицах, которые кроме вас никто не видит. Для удаления только форматов (без потери содержимого!) выделите ячейки и выберите в выпадающем списке Очистить — Очистить форматы (Clear — Clear Formats) на вкладке Главная (Home) :

Особенно «загружают» файл отформатированные целиком строки и столбцы. Т.к. размер листа в последних версиях Excel сильно увеличен (>1 млн. строк и >16 тыс. столбцов), то для запоминания и обрабоки подобного форматирования нужно много ресурсов. В Excel 2013-2016, кстати, появилась надстройка Inquire, которая содержит инструмент для быстрого избавления от подобных излишеств — кнопку Удалить избыточное форматирование (Clean Excess Cell Formatting) :

Она мгновенно удаляет все излишнее форматирование до конца листа, оставляя его только внутри ваших таблиц и никак не повреждая ваши данные. Причем может это сделать даже для всех листов книги сразу.

Читать еще:  Excel не отвечает

Если вы не видите у себя в интерфейсе вкладку Inquire, то ее необходимо подключить на вкладке Разработчик — Надстройки COM (Developer — COM Addins) .

Проблема 4. Ненужные макросы и формы на VBA

Большие макросы на Visual Basic и особенно пользовательские формы с внедренной графикой могут весьма заметно утяжелять вашу книгу. Для удаления:

  1. нажмите Alt+F11, чтобы войти в редактор Visual Basic
  2. найдите окно Project Explorer’а (если его не видно, то выберите в меню View — Project Explorer)
  3. удалите все модули и все формы (правой кнопкой мыши — Remove — дальше в окне с вопросом о экспорте перед удалением — No):

Также код может содержаться в модулях листов — проверьте их тоже. Также можно просто сохранить файл в формате XLSX без поддержки макросов — все макросы и формы умрут автоматически. Также можно воспользоваться инструментом Очистить книгу от макросов из надстройки PLEX.

Проблема 5. Именованные диапазоны

Если в вашем файле используются именованные диапазоны (особенно с формулами, динамические или получаемые при фильтрации), то имеет смысл от них отказаться в пользу экономии размера книги. Посмотреть список имеющихся диапазонов можно нажав Ctrl+F3 или открыв окно Диспетчера имен (Name Manager) на вкладке Формулы (Formulas) :

Также вычищайте именованные диапазоны с ошибками (их можно быстро отобрать с помощью кнопки Фильтр в правом верхнем углу этого окна) — они вам точно не пригодятся.

Проблема 6. Фотографии высокого разрешения и невидимые автофигуры

Если речь идет о фотографиях, добавленных в книгу (особенно когда их много, например в каталоге продукции), то они, само-собой, увеличивают размер файла. Советую сжимать их, уменьшая разрешение до 96-150 точек на дюйм. На экране по качеству это совершенно не чувствуется, а размер файла уменьшает в разы. Для сжатия воспользуйтесь кнопкой Сжать рисунки (Compress pictures) на вкладке Формат (Format) :

Кроме видимых картинок на листе могут содержаться и невидимые изображения (рисунки, фотографии, автофигуры). Чтобы увидеть их, выделите любую картинку и на вкладке Формат (Format) нажмите кнопку Область выделения (Selection Pane) .

Для удаления вообще всех графических объектов на текущем листе можно использовать простой макрос:

Проблема 7. Исходные данные сводных таблиц

По-умолчанию Excel сохраняет данные для расчета сводной таблицы (pivot cache) внутри файла. Можно отказаться от этой возможности, заметно сократив размер файла, но увеличив время на обновление сводной при следующем открытии книги. Щелкните правой кнопкой мыши по сводной таблице и выберите команду Свойства таблицы (Pivot Table Properties) — вкладка Данные (Data) — снять флажок Сохранять исходные данные вместе с файлом (Save source data with file):


Если у вас несколько сводных таблиц на основе одного диапазона данных, то сократить размер файла здорово помогает метод, когда все сводные таблицы после первой строятся на основе уже созданного для первой таблицы кэша. В Excel 2000-2003 это делается выбором переключателя на первом шаге Мастера сводных таблиц при построении:

В Excel 2007-2016 кнопку Мастера сводных таблиц нужно добавлять на панель вручную — на ленте такой команды нет. Для этого щелкните по панели быстрого доступа правой кнопкой мыши и выберите Настройка панели быстрого доступа (Customize Quick Access Toolbar) и затем найдите в полном списке команд кнопку Мастер сводных таблиц (PivotTable and PivotChart Wizard) :

Проблема 8. Журнал изменений (логи) в файле с общим доступом

Если в вашем файле включен общий доступ на вкладке Рецензирование — Доступ к книге (Review — Share Workbook) , то внутри вашего файла Excel на специальном скрытом листе начинает сохраняться вся история изменений документа: кто, когда и как менял ячейки всех листов. По умолчанию, такой журнал сохраняет данные изменений за последние 30 дней, т.е. при активной работе с файлом, может запросто занимать несколько мегабайт.

Мораль: не используйте общий доступ без необходимости или сократите количество дней хранения данных журнала, используя вторую вкладку Подробнее (Advanced) в окне Доступ к книге. Там можно найти параметр Хранить журнал изменений в течение N дней (Keep change history for N days) или совсем отключить его:

Проблема 9. Много мусорных стилей

Про эту пакость я уже подробно писал ранее в статье о том, как победить ошибку «Слишком много форматов ячеек». Суть, если кратко, в том, что если вы разворачиваете на вкладке Главная список Стили ячеек (Home — Cell Styles) и видите там очень много непонятных и ненужных стилей, то это плохо — и для размера вашего файла Excel и для его быстродействия.

Удалить ненужные стили можно с помощью макроса или готовой команды из надстройки PLEX.

Проблема 10. Много примечаний

Примечания к ячейкам, конечно, не самый вредный момент из всех перечисленных. Но некоторые файлы могут содержать большое количество текста или даже картинок в примечаниях к ячейкам. Если примечания не содержат полезной для вас информации, то их можно легко удалить с помощью команды на вкладке ГлавнаяОчистить — Очистить примечания (Home — Clear — Clear Comments) .

Технические характеристики и ограничения Excel

Технические характеристики и ограничения листа и книги

Количество открытых книг

Ограничено объемом доступной оперативной памяти и ресурсами системы

Общее количество строк и столбцов на листе

1 048 576 строк и 16 384 столбца

1 026 горизонтальных и вертикальных

Общее количество знаков в ячейке

Число знаков в верхнем и нижнем колонтитуле

Максимальное количество построчных переводов в одну ячейку

Количество листов в книге

Ограничено объемом доступной оперативной памяти (по умолчанию 1 лист)

Количество цветов в книге

16 миллионов цветов (32-битовый спектр с полным доступом к 24-битовому спектру)

Именованные представления в книге

Ограничено объемом доступной оперативной памяти

Количество уникальных форматов/стилей ячеек

Количество стилей заливки

Количество стилей и толщин линий

Количество уникальных шрифтов

1 024 доступных глобальных шрифта; 512 шрифтов в каждой книге

Количество численных форматов в книге

От 200 до 250, в зависимости от установленной языковой версии Excel

Количество имен в книге

Ограничено объемом доступной оперативной памяти

Количество окон в книге

Ограничено объемом доступной оперативной памяти

Гиперссылки на листе

66 530 гиперссылок

Количество областей в окне

Количество связанных листов

Ограничено объемом доступной оперативной памяти

Ограничено объемом доступной оперативной памяти; в итоговый отчет включается 251 сценарий, начиная с первого

Количество изменяемых ячеек в сценарии

Количество вычисляемых ячеек в надстройке «Поиск решения»

Количество пользовательских функций

Ограничено объемом доступной оперативной памяти

от 10 до 400 процентов

Ограничено объемом доступной оперативной памяти

Количество ссылок для сортировки

64 для однократной сортировки; не ограничено для последовательных сортировок

Количество уровней отмены

Количество полей в форме данных

Количество параметров в книге

255 параметров в одной книге

Количество элементов, которые отображаются в раскрывающихся списках фильтров

Читать еще:  Excel vba msgbox

Количество независимых ячеек, которые можно выделить

2 147 483 648 ячеек

Максимальные пределы объема памяти и размера файла для книг с моделями данных

В 32-разрядной среде выделяется 2 гигабайта (ГБ) виртуального адресного пространства, которое совместно используется приложением Excel, книгой и надстройками, работающими в рамках одного процесса. Доля адресного пространства, выделяемого для модели данных, может достигать 500–700 мегабайт (МБ), но может быть и меньше, если загружаются другие модели данных и надстройки.

64-разрядная среда не накладывает жестких ограничений на размер файлов. Размер книги ограничен только объемом доступной памяти и ресурсами системы.

Начиная с Excel 2016, функция, поддерживающая большое количество адресов, позволяет приложению 32-bit использовать память дважды, когда пользователи работают в 64-разрядной операционной системе Windows. Дополнительные сведения можно найти в разделе изменение возможностей, использующих большие адреса в Excel.

Примечание: Добавление таблиц в модели данных увеличивает размер файла. Если вы не планируете создавать для модели данных сложные связи с использованием большого количества источников и типов данных в книге, во время импорта или создания таблиц, сводных таблиц или подключений к данным снимите флажок Добавить эти данные в модель данных.

Трюк №8. Ограничение диапазона прокрутки листа Excel

Если вы постоянно перемещаетесь по своей электронной таблице или не хотите, чтобы читатели могли просматривать определенные данные, удобно ограничить видимую область электронной таблицы только необходимыми
данными.

Все листы Excel, созданные в Excel 97-2003, имеют 256 столбцов (от А до IV) и 65 536 строк. Чаще всего на листе используется лишь небольшая доля доступных ячеек. Немного усилий — и вы сможете ограничить область прокрутки листа только ячейками, содержащими нужные данные. Затем можно поместить данные, которые пользователь видеть не должен, в ячейки за пределами области прокрутки. Это также упростит переход по ячейкам на листе, так как часто возникает ситуация, когда пользователь неожиданно оказывается на 50 000 строке и начинает кричать, что на листе совершенно невозможно найти необходимые данные.

Самый простой способ установить границы — просто спрятать все неиспользуемые столбцы и строки. На своем листе найдите последнюю строку, содержащую данные, и целиком выделите строку под ней, щелкнув кнопку строки. Удерживайте клавиши Ctrl и Shift и нажимайте стрелку вниз, чтобы выделить все строки ниже. Чтобы спрятать их, выберите команду Формат → Строка → Скрыть (Format → Row → Hide). To же самое сделайте и с неиспользуемыми столбцами: найдите последний столбец с данными, полностью выделите столбец справа от него, удерживайте клавиши Ctrl и Shift, нажимая стрелку вправо, а затем выберите команду Формат → Столбец → Скрыть (Format → Column → Hide). Если все произошло как надо, используемые ячейки будут окружены серой областью, за пределы которой пе.рейти невозможно.

Второй способ определить границы — указать допустимый диапазон в окне Properties листа. Правой кнопкой мыши щелкните ярлычок листа в левом нижнем углу экрана и в контекстном меню выберите пункт View Code (Исходный текст). В Windows выберите команду View → Project Explorer (Ctrl+R), а в Mac OS X нажмите сочетание клавиш Apple+R, чтобы открыть окно Project Explorer. Если окно Properties не открыто, нажмите клавишу F4. Выберите нужный лист, и перейдите к свойству ScrollArea в окне Properties.

Теперь в Project Explorer выберите лист, область прокрутки которого хотите ограничить, а затем в окне Properties (рис. 1.12) перейдите к свойству ScrollArea. В соответствующем поле значений справа введите желаемые границы листа, например, $A$1:$G$50.

Рис. 1.12. Окно Properties в Project Explorer

Вы не сможете прокручивать лист за пределы указанной области. К сожалению, после закрытия Excel не сохранит этот параметр. Это означает, что для того, чтобы автоматически выбирать желаемый диапазон прокрутки, необходимо создать простой макрос, поместив немного кода в событие worksheet_Activate.

Правой кнопкой мыши щелкните ярлычок с именем того листа, где нужно ограничить диапазон прокрутки, и в контекстном меню выберите команду Исходный текст (View Code), затем введите код из листинга 1.13.

// Листинг 1.13 Private Sub Worksheet_Activate () Me. Scroll Area = «A1:G50» End Sub

Как обычно, нажмите сочетание клавиш Alt/Apple+Q, чтобы вернуться в Excel и сохранить книгу. Хотя вы не сможете увидеть результат в виде серой области в первом способе, вы все же не сможете прокрутить лист или выбрать что-либо за пределами заданной области.

// Листинг 1.14 Sub МуМасrо() ‘ ‘ ‘макрос МуМасго ‘макрос записан 19/9/2011 ву Excel2010.ru ‘ ‘ ActiveSheet.Scroll Area = «» Range(«Z100»).Select Selection.Font.Bold = True ActiveSheet.Scroll Area — «$A$1:$G$50″ Sheets(‘Daily Budget»).Select ActiveSheet.Scroll Area = «» Range («T500»).Select Selection.Font.Bold = False ActiveSheet.Scroll Area = «$A$1:$H$25» End Sub

Наш записанный макрос выбирает ячейку Z100 и форматирует ее, делая шрифт жирным. Затем он выбирает лист с именем Daily Budget, выбирает на нем ячейку Т500 и отменяет жирный шрифт. Мы добавили строку ActiveSheet.ScrollArea = «», поэтому на листе можно выбрать любую ячейку, а затем восстановить желаемый ограниченный диапазон прокрутки. Выбирая другой лист (Daily Budget), мы снова позволяем коду выбирать любую ячейку на этом листе, а затем восстанавливаем ограниченный диапазон.

Третий метод, наиболее гибкий, автоматически ограничивает область прокрутки используемым диапазоном ячеек на листе, для которого вы создаете следующий код. Чтобы применить этот способ, правой кнопкой мыши щелкните ярлычок с именем нужного листа, в контекстном меню выберите пункт Исходный текст (View Code) и введите код, приведенный в листинге 1.15.

// Листинг 1.15 Private Sub Worksheet_Activate() Me.ScrollArea = Range(Me.UsedRange, Me.UsedRange(2.2)).Address End Sub

Теперь нажмите сочетание клавиш Alt/Apple+Q или щелкните крестик в правом верхнем углу окна, чтобы вернуться в Excel и сохранить книгу.

Этот макрос будет выполняться автоматически каждый раз, когда вы будете активировать лист, где он хранится. Однако некоторые проблемы могут возникнуть, если понадобится ввести данные за пределами текущего используемого диапазона. Чтобы избежать этого, примените стандартный макрос, который восстановит область прокрутки, равную полному листу. Выберите команду Сервис → Макрос → Редактор Visual Basic (Tools → Macro → Visual Basic Editor), затем выберите команду Insert → Module и введите код из листинга 1.16.

// Листинг 1.16 Sub ResetScrollArea() ActiveSheet.ScrollArea = «» End Sub

Теперь нажмите сочетание клавиш Alt/Apple+Q или щелкните крестик в правом верхнем углу окна, чтобы вернуться в Excel и сохранить книгу. Если хотите, можно упростить способ выполнения макроса, назначив ему сочетание клавиш. Выберите команду Сервис → Макрос → Макросы (Tools → Macro > Macros) или нажмите сочетание клавиш (Alt/Option+F8). Выберите ResetScrollArea (это имя вашего макроса), щелкните кнопку Параметры (Options) и выберите сочетание клавиш.

Каждый раз, когда понадобится добавить данные за пределами установленных границ листа, выполняйте макрос ResetScrollArea для переопределения границ. После выполнения макроса внесите изменения, которые было невозможно сделать с ограниченным диапазоном прокрутки. Закончив, активируйте любой другой лист, а затем активируйте только что измененный лист. Это действие запустит код, ограничивающий диапазон прокрутки желаемой областью.

Ссылка на основную публикацию
Adblock
detector