Анализ макросов в excel

Информация превзошла все мои ожидания. А вебинар — это просто сказка

Я тоже очень долго использую Excel в своей повседневной и рабочей сфере. Всегда обращаю внимание на информацию по этому приложению, вдруг чего нового узнаю. Сайт Дмитрия и размещенная тут информация превзошла все мои ожидания. А вебинар — это просто сказка. Применение изложенного материала начинается после первого урока. Спасибо Дмитрию за домашние задания, за их проверку и подсказки в оптимальном их решении.

Думаю, что это чувствует каждый

Присутствовала на «живом» мастер-классе «Массовое формирование документов», в очередной раз удивляясь таланту Дмитрия: простым понятным языком донести до каждого большой объем информации, сложной для восприятия, особенно тем, кто раньше никогда не сталкивался с задачами программирования.

Большое Вам спасибо, Дмитрий за вебинар 13.08.13

Слышала Ваш уставший голос в начале мастер-класса, возможно просто из-за плохого самочувствия. Подумала, что, наверное, все по-быстрому пройдет — дадите основной материал по уже отработанной схеме — и все. И была поражена, как Вы терпеливо отвечали на все вопросы. И не просто давая ответ, а рассматривая это на конкретных примерах и составляя новые программные коды, которые не были запланированы изначально в данном мастер-классе.

Это можно объяснить только Вашим искренним желанием основательно НАУЧИТЬ каждого из присутствовавших, передав свои знания, а не просто формально провести урок. Думаю, что это чувствует каждый, кто бывает на Ваших занятиях он-лайн.

Хочу выразить свое глубокое уважение к Вам не только как к профессионалу высокого класса и талантливому педагогу, но и как к человеку, с большой ответственностью относящемуся к тому, что он делает. Дальнейших успехов Вам!

Ольга Мельникова о мастер-классе

Хочется продолжать углубляться, внедряя полученные навыки в работу

Спасибо, Дмитрий, огромное. Очень полезный и нужный тренинг, после него хочется продолжать углубляться, внедряя полученные навыки в работу. Вы не только отличный учитель, но и человек, умеющий заразить своими энергией и интересом к новому. Спасибо за то, что Вы есть!

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

Я бы дала курсу девиз «теория и практика, практика»

Всем привет!

Мне посчастливилось позаниматься очно, чему я очень рада!

Я — владелец маленького начинающего интернет-магазина. У меня несколько поставщиков, у всех прайсы в экселе с разными данными, и за любое изменение в прайс -листе — следует изменение в парсере, что влетает для меня в копеечку, а «прибыля» в кризис оставляют желать лучшего. А я знаю, что некоторые программисты дерут за изменение/добавление 2-3 строк по 5-15 тыс. В свое время, у меня был опыт программирования, давалось мне это легко. Я сначала искала обучение на php, но было так страшно, отзывы неоднозначные про все эти курсы. И тут приходит суперпредложение от Дмитрия поучаствовать в тренинге. Excel я знаю неплохо, давно знаю сайт Дмитрия, по бесплатным урокам знакома с методикой обучения. Поэтому я подумала, а почему бы мне не делать вообще это через Excel?

Курс замечательный. Я бы дала ему девиз «теория и практика, практика». Еще не закончив его, у меня уже наработки есть по моей работе. В общем я очень довольна, мне очень нравиться, особенно нравиться то, что все получается! А у Дмитрия не возможно что-то не понять! В общем если есть сомнения — не сомневайтесь, для обработки данных в этом курсе есть все.

Евгения Крюкова о практическом тренинге

Есть желание и дальше двигаться вперед

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

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

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

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

Такой системный подход и позволил нарастающими темпами, шаг за шагом, формировать базу новых знаний. И не просто знаний, но и навыков — ведь все пройденное закреплялось в процессе решения домашних заданий.

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

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

Также перед началом тренинга я посмотрела 15 видеоуроков, которые находятся в открытом доступе на сайте. И сейчас понимаю,что если бы не ознакомилась с ними, то обучение протекало бы ощутимо сложнее. Можно сказать, что после упомянутых видеоуроков тренинг становится логическим продолжением.

Большая благодарность Дмитрию за то, что стал нашим проводником в мире VBA и Excel, показал пути, по которым можно идти. Самое главное, что после тренинга есть желание и дальше двигаться вперед, и появляются идеи для воплощения на практике. То, что прежде казалось непонятным и замысловатым, постепенно проясняется и обретает знакомые очертания.

Дмитрий, БОЛЬШОЕ СПАСИБО за тренинг, за проведенную работу! Дальнейших успехов проекту!

Диляра Хакимуллина о практическом тренинге

Чтение и анализ записанного макроса

На предыдущих уроках мы научились создавать макросы, редактировать и копировать записанные макросы. Задача данного видеоурока — научиться читать записанные простые макросы и понимать, что именно должен выполнять тот или иной макрос, без запуска его на выполнение. Рассматривается наиболее эффективная методика изучения макросов на начальном этапе — их макросов и последующий анализ.

Для просмотра видео необходимо

зарегистрироваться на сайте

Если вы уже зарегистрированы на сайте —

обновите страницу по этой ссылке или кнопкой F5

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

Примеры макросов для автоматизации работы

makrosy-filtra-svodnoy-tablicyМакросы для фильтра сводной таблицы в Excel.
Как автоматизировать фильтр в сводных таблицах с помощью макроса? Исходные коды макросов для фильтрации и скрытия столбцов в сводной таблице.

makros-svodnoy-tablicyМакрос для создания сводной таблицы в Excel.
Как автоматически сгенерировать сводную таблицу с помощью макроса? Исходный код VBA для создания и настройки сводных таблиц на основе исходных данных.

makrosy-dlya-formatirovaniya-yacheekМакросы для изменения формата ячеек в таблице Excel.
Как форматировать ячейки таблицы макросом? Изменение цвета шрифта, заливки и линий границ, выравнивание. Автоматическая настройка ширины столбцов и высоты строк по содержимому с помощью VBA-макроса.

makros-pereimenovat-listyМакрос для копирования и переименования листов Excel.
Как одновременно копировать и переименовывать большое количество листов одним кликом мышкой? Исходный код макроса, который умеет одновременно скопировать и переименовать любое количество листов.




Download Article

An easy-to-use guide to find and manage macros in your Excel workbook


Download Article

This wikiHow teaches you how to see a list of macros in your Excel workbook, as well as how to view each macro’s details in the Visual Basic Editor. Before you can work with macros, you’ll need to enable the Developer tab in Excel—fortunately, this is super easy to do.

Steps

  1. Image titled View Macros in Excel Step 1

    1

    Open a workbook in Excel. You can double-click the name of the workbook to open it in Excel. Alternatively, open Excel first from the Windows Start menu or your Mac’s Applications folder, click Open, and then double-click the file.

  2. Image titled View Macros in Excel Step 2

    2

    Enable the Developer tab. If the Developer tab is enabled, it’ll be in the menu bar at the top of Excel. If you don’t see it, here’s how to enable it:

    • Windows:

      • Click the File menu and select Options.
      • Click Customize Ribbon.
      • Select Main Tabs from the «Customize the ribbon» drop-down menu.[1]
      • Check the box next to Developer and click OK.
    • macOS:

      • Click the Excel menu and select Preferences.[2]
      • Select Main Tabs under «Customize the Ribbon.»
      • Check the box next to Developer.
      • Click Save.

    Advertisement

  3. Image titled View Macros in Excel Step 3

    3

    Click the Developer tab. It’s at the top of Excel.

  4. Image titled View Macros in Excel Step 4

    4

    Click Macros. It’s on the left side of the toolbar. This displays a list of macros in all open workbooks by default.

    • To see macros in a particular workbook only, select that workbook’s name from the «Macros in» menu.
  5. Image titled View Macros in Excel Step 5

    5

    Select a macro and click Edit. This displays the macro in the Visual Basic Editor.

  6. Advertisement

Ask a Question

200 characters left

Include your email address to get a message when this question is answered.

Submit

Advertisement

Thanks for submitting a tip for review!

References

About This Article

Article SummaryX

1. Open a workbook.
2. Click the Developer tab.
3. Click Macros.
4. Select a Macro.
5. Click Edit.

Did this summary help you?

Thanks to all authors for creating a page that has been read 41,380 times.

Is this article up to date?

Использование макросов Excel может ускорить работу и сэкономить много времени.

Один из способов получить код VBA — записать макрос и взять код, который он генерирует. Однако этот код макроса записи часто полон кода, который на самом деле не нужен. Также у макро-рекордера есть некоторые ограничения.

Поэтому стоит иметь коллекцию полезных макрокодов VBA, которые можно носить в заднем кармане и использовать при необходимости.

Хотя написание макрокода Excel VBA на начальном этапе может занять некоторое время, после его завершения вы можете сохранить его доступным в качестве справочника и использовать в следующий раз, когда он понадобится.

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

Я буду продолжать обновлять этот учебник, добавляя больше примеров макросов. Если вы считаете, что что-то должно быть в списке, просто оставьте комментарий.

Вы можете добавить эту страницу в закладки для дальнейшего использования.

Теперь, прежде чем я перейду к примеру макроса и дам вам код VBA, позвольте мне сначала показать вам, как использовать эти примеры кодов.

Вот шаги, которые необходимо выполнить, чтобы использовать код из любого из примеров:

  • Откройте книгу, в которой вы хотите использовать макрос.
  • Удерживая клавишу ALT, нажмите F11. Откроется редактор VB.
  • Щелкните правой кнопкой мыши любой из объектов в проводнике проекта.
  • Перейдите в Insert -> Module.
  • Скопируйте и вставьте код в окно кода модуля.

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

После того, как вы вставили код в книгу, вам необходимо сохранить его с расширением .XLSM или .XLS.

Как запустить макрос

После того, как вы скопировали код в редакторе VB, выполните следующие действия для запуска макроса:

  • Перейдите на вкладку Разработчик.
  • Щелкните Макросы.

  • В диалоговом окне «Макрос» выберите макрос, который нужно запустить.
  • Нажмите кнопку «Выполнить».

Если вы не можете найти вкладку разработчика на ленте, прочтите это руководство, чтобы узнать, как ее получить.

Связанное руководство: различные способы запуска макроса в Excel.

Если код вставлен в окно кода рабочего листа, вам не нужно беспокоиться о его запуске. Он будет автоматически запускаться при выполнении указанного действия.

Теперь перейдем к полезным примерам макросов, которые помогут автоматизировать работу и сэкономить время.

Примечание. Вы найдете множество примеров апострофа (‘), за которым следует пара строк. Это комментарии, которые игнорируются при запуске кода и помещаются как заметки для себя / читателя.

Если вы обнаружите ошибку в статье или коде, пожалуйста, дайте мне знать.

Примеры макросов Excel

В этой статье рассматриваются следующие примеры макросов:

Показать все рабочие листы за один раз

Если вы работаете с книгой, в которой есть несколько скрытых листов, вам нужно отображать эти листы один за другим. Это может занять некоторое время, если есть много скрытых листов.

Вот код, который покажет все рабочие листы в книге.

'Этот код отобразит все листы в книге Sub UnhideAllWoksheets () Dim ws As Worksheet для каждого ws в ActiveWorkbook.Worksheets ws.Visible = xlSheetVisible Next ws End Sub

В приведенном выше коде используется цикл VBA (для каждого) для просмотра всех листов в книге. Затем он изменяет видимое свойство рабочего листа на видимое.

Вот подробное руководство о том, как использовать различные методы для отображения листов в Excel.

Скрыть все рабочие листы, кроме активного листа

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

'Этот макрос скроет весь рабочий лист, кроме активного листа Sub HideAllExceptActiveSheet () Dim ws As Worksheet For Each ws In ThisWorkbook.Worksheets If ws.Name ActiveSheet.Name Then ws.Visible = xlSheetHidden Next ws End Sub

Сортировка листов по алфавиту с помощью VBA

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

'Этот код будет отсортировать листы по алфавиту Sub SortSheetsTabName () Application.ScreenUpdating = False Dim ShCount As Integer, i As Integer, j As Integer ShCount = Sheets.Count For i = 1 To ShCount - 1 For j = i + 1 To ShCount If Sheets (j) .Name <Sheets (i) .Name Then Sheets (j) .Move before: = Sheets (i) End If Next j Next i Application.ScreenUpdating = True End Sub

Защитите все рабочие листы за один раз

Если у вас много листов в книге и вы хотите защитить все листы, вы можете использовать этот код макроса.

Это позволяет вам указать пароль в коде. Этот пароль понадобится вам, чтобы снять защиту с листа.

'Этот код защитит все листы за один раз Sub ProtectAllSheets () Dim ws As Worksheet Dim password As String password = "Test123"' замените Test123 нужным паролем. Для каждого ws In Worksheets ws.Protect password: = password Далее ws Конец подписки

Снять защиту со всех листов за один раз

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

'Этот код защитит все листы за один раз. Sub ProtectAllSheets () Dim ws As Worksheet Dim password As String password = "Test123"' замените Test123 нужным паролем. For Each ws In Worksheets () ws.Unprotect password: = password Next ws Конец подписки

Обратите внимание, что пароль должен совпадать с паролем, который использовался для блокировки рабочих листов. В противном случае вы увидите сообщение об ошибке.

Показать все строки и столбцы

Этот код макроса покажет все скрытые строки и столбцы.

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

'Этот код отобразит все строки и столбцы в подменю рабочего листа UnhideRowsColumns () Columns.EntireColumn.Hidden = False Rows.EntireRow.Hidden = False End Sub

Разъединить все объединенные ячейки

Обычно ячейки объединяют в одну. Пока он выполняет свою работу, при объединении ячеек вы не сможете сортировать данные.

Если вы работаете с листом с объединенными ячейками, используйте приведенный ниже код, чтобы объединить все объединенные ячейки за один раз.

'Этот код объединит все объединенные ячейки Sub UnmergeAllCells () ActiveSheet.Cells.UnMerge End Sub

Обратите внимание, что вместо «Объединить и центрировать» я рекомендую использовать параметр «Центрировать по всему выделению».

Сохранить книгу с отметкой времени в ее имени

Много времени, возможно, вам понадобится создать версии своей работы. Они очень полезны в длинных проектах, когда вы работаете с файлом в течение долгого времени.

Хорошая практика — сохранить файл с отметками времени.

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

Вот код, который автоматически сохранит книгу в указанной папке и добавит метку времени при каждом сохранении.

'Этот код сохранит файл с меткой времени в его имени Sub SaveWorkbookWithTimeStamp () Тусклая метка времени в виде строки timestamp = Format (Date, "dd-mm-yyyy") & "_" & Format (Time, "hh-ss") ThisWorkbook.SaveAs "C: UsersUsernameDesktopWorkbookName" и отметка времени End Sub

Вам необходимо указать расположение папки и имя файла.

В приведенном выше коде «C: UsersUsernameDesktop — это папка, которую я использовал. Вам необходимо указать папку, в которой вы хотите сохранить файл. Кроме того, я использовал общее имя «WorkbookName» в качестве префикса имени файла. Вы можете указать то, что связано с вашим проектом или компанией.

Сохраняйте каждый рабочий лист как отдельный PDF-файл

Если вы работаете с данными за разные годы, подразделения или продукты, вам может потребоваться сохранить разные рабочие листы в виде файлов PDF.

Хотя это может занять много времени, если выполнить его вручную, VBA действительно может его ускорить.

Вот код VBA, который сохранит каждый рабочий лист как отдельный PDF-файл.

'Этот код сохранит каждый рабочий лист как отдельный PDF-файл Sub SaveWorkshetAsPDF () Dim ws As Worksheet для каждого ws в рабочих таблицах ws.ExportAsFixedFormat xlTypePDF, "C: UsersSumitDesktopTest" & ws.Name & ".pdf" Next ws End Sub

В приведенном выше коде я указал адрес папки, в которой я хочу сохранить PDF-файлы. Кроме того, каждый PDF-файл получит то же имя, что и рабочий лист. Вам нужно будет изменить расположение этой папки (если только ваше имя не Sumit и вы не сохраняете его в тестовой папке на рабочем столе).

Обратите внимание, что этот код работает только с листами (а не с таблицами диаграмм).

Сохраняйте каждый рабочий лист как отдельный PDF-файл

Вот код, который сохранит всю вашу книгу в виде PDF-файла в указанной папке.

'Этот код сохранит всю книгу как PDF Sub SaveWorkshetAsPDF () ThisWorkbook.ExportAsFixedFormat xlTypePDF, "C: UsersSumitDesktopTest" & ThisWorkbook.Name & ".pdf" End Sub

Вам нужно будет изменить расположение папки, чтобы использовать этот код.

Преобразование всех формул в значения

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

'Этот код преобразует все формулы в значения Sub ConvertToValues ​​() With ActiveSheet.UsedRange .Value = .Value End With End Sub

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

Защита / блокировка ячеек с помощью формул

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

Вот код, который заблокирует все ячейки с формулами, в то время как все остальные ячейки не заблокированы.

'Этот код макроса заблокирует все ячейки с формулами Sub LockCellsWithFormulas () с ActiveSheet .Unprotect .Cells.Locked = False .Cells.SpecialCells (xlCellTypeFormulas) .Locked = True .Protect AllowDeletingRows: = True End With End Sub

Связанное руководство: Как заблокировать ячейки в Excel.

Защитить все рабочие листы в книге

Используйте приведенный ниже код, чтобы защитить все рабочие листы в книге за один раз.

'Этот код будет защищать все листы в книге Sub ProtectAllSheets () Dim ws As Worksheet для каждого ws In Worksheets ws.Protect Next ws End Sub

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

Если вы хотите снять защиту со всех листов, используйте в коде ws.Unprotect вместо ws.Protect.

Вставлять строку после каждой другой строки в выделенном фрагменте

Используйте этот код, если вы хотите вставить пустую строку после каждой строки в выбранном диапазоне.

'Этот код вставит строку после каждой строки в выбранном Sub InsertAlternateRows () Dim rng As Range Dim CountRow As Integer Dim i As Integer Set rng = Selection CountRow = rng.EntireRow.Count For i = 1 To CountRow ActiveCell.EntireRow. Вставьте ActiveCell.Offset (2, 0). Выберите Next i End Sub

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

Автоматически вставлять дату и время в соседнюю ячейку

Отметка времени — это то, что вы используете, когда хотите отслеживать действия.

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

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

'Этот код вставит метку времени в соседнюю ячейку Private Sub Worksheet_Change (ByVal Target As Range) При ошибке GoTo Handler Если Target.Column = 1 And Target.Value "" Тогда Application.EnableEvents = False Target.Offset (0, 1) = Format (Now (), «дд-мм-гггг чч: мм: сс») Application.EnableEvents = True End If Handler: End Sub

Обратите внимание, что вам нужно вставить этот код в окно кода рабочего листа (а не в окно кода модуля, как мы это делали до сих пор в других примерах макросов Excel). Для этого в редакторе VB дважды щелкните имя листа, на котором вы хотите использовать эту функцию. Затем скопируйте и вставьте этот код в окно кода этого листа.

Кроме того, этот код заставляет работать, когда ввод данных выполняется в столбце A (обратите внимание, что в коде есть строка Target.Column = 1). Вы можете изменить это соответствующим образом.

Выделите альтернативные строки в выделенном фрагменте

Выделение альтернативных строк может значительно повысить удобочитаемость ваших данных. Это может быть полезно, когда вам нужно сделать распечатку и просмотреть данные.

Вот код, который мгновенно выделяет альтернативные строки в выделенном фрагменте.

'Этот код будет выделять альтернативные строки в выделении Sub HighlightAlternateRows () Dim Myrange As Range Dim Myrow As Range Set Myrange = Selection For Each Myrow In Myrange.Rows If Myrow.Row Mod 2 = 1 Then Myrow.Interior.Color = vbCyan End Если следующий Myrow End Sub

Обратите внимание, что в коде я указал цвет как vbCyan. Вы также можете указать другие цвета (например, vbRed, vbGreen, vbBlue).

Выделите ячейки с ошибками в написании слов

В Excel нет проверки орфографии, как в Word или PowerPoint. Хотя вы можете запустить проверку орфографии, нажав клавишу F7, нет визуальной подсказки, когда есть орфографическая ошибка.

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

'Этот код будет выделять ячейки, содержащие слова с ошибками Sub HighlightMisspelledCells () Dim cl As Range For Each cl In ActiveSheet.UsedRange If Not Application.CheckSpelling (word: = cl.Text) Then cl.Interior.Color = vbRed End If Next cl End Sub

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

Обновить все сводные таблицы в книге

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

'Этот код обновит всю сводную таблицу в подпрограмме Workbook Sub RefreshAllPivotTables () Dim PT As PivotTable для каждого PT в ActiveSheet.PivotTables PT.RefreshTable Next PT End Sub

Вы можете узнать больше об обновлении сводных таблиц здесь.

Измените регистр букв выбранных ячеек на верхний регистр

Хотя в Excel есть формулы для изменения регистра букв текста, он заставляет вас делать это в другом наборе ячеек.

Используйте этот код, чтобы мгновенно изменить регистр букв в выделенном тексте.

'Этот код изменит выделение на верхний регистр Sub ChangeCase () Dim Rng As Range For Each Rng In Selection.Cells If Rng.HasFormula = False Then Rng.Value = UCase (Rng.Value) End If Next Rng End Sub

Обратите внимание, что в этом случае я использовал UCase, чтобы сделать текстовый регистр Upper. Вы можете использовать LCase для нижнего регистра.

Выделите все ячейки комментариями

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

'Этот код будет выделять ячейки с комментариями` Sub HighlightCellsWithComments () ActiveSheet.Cells.SpecialCells (xlCellTypeComments) .Interior.Color = vbBlue End Sub

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

Выделите пустые ячейки с помощью VBA

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

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

Вот код макроса VBA:

'Этот код выделит все пустые ячейки в Sub HighlightBlankCells () Dim Dataset как Range Set Dataset = Selection Dataset.SpecialCells (xlCellTypeBlanks) .Interior.Color = vbRed End Sub

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

Как отсортировать данные по одному столбцу

Вы можете использовать приведенный ниже код для сортировки данных по указанному столбцу.

Sub SortDataHeader () Range ("DataRange"). Sort Key1: = Range ("A1"), Order1: = xlAscending, Header: = xlYes End Sub

Обратите внимание, что я создал именованный диапазон с именем DataRange и использовал его вместо ссылок на ячейки.

Также здесь используются три ключевых параметра:

  • Key1 — это тот, по которому вы хотите отсортировать набор данных. В приведенном выше примере кода данные будут отсортированы на основе значений в столбце A.
  • Порядок — здесь вам нужно указать, хотите ли вы отсортировать данные в порядке возрастания или убывания.
  • Заголовок — здесь вам нужно указать, есть ли у ваших данных заголовки или нет.

Узнайте больше о том, как сортировать данные в Excel с помощью VBA.

Как отсортировать данные по нескольким столбцам

Предположим, у вас есть набор данных, как показано ниже:

Ниже приведен код, который сортирует данные по нескольким столбцам:

Sub SortMultipleColumns () с ключом ActiveSheet.Sort .SortFields.Add: = Range ("A1"), Order: = xlAscending .SortFields.Add Key: = Range ("B1"), Order: = xlAscending .SetRange Range ("A1 : C13 ") .Header = xlYes. Применить End With End Sub

Обратите внимание, что здесь я указал сначала сортировку по столбцу A, а затем по столбцу B.

Результат будет примерно таким, как показано ниже:

Как получить только числовую часть из строки в Excel

Если вы хотите извлечь только числовую часть или только текстовую часть из строки, вы можете создать пользовательскую функцию в VBA.

Затем вы можете использовать эту функцию VBA на листе (как и обычные функции Excel), и она будет извлекать из строки только числовую или текстовую часть.

Что-то вроде того, что показано ниже:

Ниже приведен код VBA, который создаст функцию для извлечения числовой части из строки:

'Этот код VBA создаст функцию для получения числовой части из строки. Функция GetNumeric (CellRef As String) Dim StringLength As Integer StringLength = Len (CellRef) For i = 1 To StringLength If IsNumeric (Mid (CellRef, i, 1) ) Затем Result = Result & Mid (CellRef, i, 1) Next i GetNumeric = Result End Function

Вам нужно поместить код в модуль, а затем вы можете использовать функцию = GetNumeric на листе.

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

Точно так же ниже приведена функция, которая вернет вам только текстовую часть из строки в Excel:

'Этот код VBA создаст функцию для получения текстовой части из строки. Функция GetText (CellRef As String) Dim StringLength As Integer StringLength = Len (CellRef) For i = 1 To StringLength If Not (IsNumeric (Mid (CellRef, i, 1))) Затем Result = Result & Mid (CellRef, i, 1) Next i GetText = Result End Function

Итак, это некоторые из полезных кодов макросов Excel, которые вы можете использовать в своей повседневной работе для автоматизации задач и повышения производительности.

Понравилась статья? Поделить с друзьями:
  • Анализ ликвидности баланса в excel
  • Анализ крови что такое word
  • Анализ коэффициента корреляции excel
  • Анализ контрольных работ excel
  • Анализ контрольной работы excel