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

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

Excel на Mac не всегда был таким же мощным, как в Windows. Макросы действительно не работали бы, если бы они не были созданы исключительно для Mac.





Начиная с 2013 года, Microsoft вернула макросы. Есть два типа макросов: те, которые вы можете создать, быстро записывая свои действия, и те, которые используют VBA для разработки более продвинутой автоматизации. В Office 2016 Excel использует одна и та же кодовая база на всех платформах . Это изменение упростит работу макросов на разных платформах.





Итак, давайте посмотрим, как это сейчас работает в macOS.





как импортировать кисти в procreate

Включение макросов в Excel на Mac

Работа с макросами в Excel на вашем Mac может быть отключена по умолчанию. Этот параметр вызван тем, что макросы могут быть вектором вредоносного ПО. Самый простой способ узнать, есть ли у вас Разработчик Вкладка доступна на ленте в Excel. Если вы его не видите, его просто включить.

Нажмите на Excel в строке меню, а затем выберите Предпочтения в раскрывающемся списке. В меню нажмите на Лента и панель инструментов . В правом списке Разработчик должен быть внизу, установите флажок. Наконец, нажмите Сохранить и вы должны увидеть вкладку «Разработчик» в конце ленты.



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

Ручная запись макроса в Excel на Mac

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





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

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





Пример 1. Общий объем продаж за день и средний почасовой показатель.

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

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

Затем в первом столбце поместите разбивку почасовых сумм от 8 до 5. Я использовал 24-часовое время, но вы можете использовать нотацию AM / PM, если хотите. Ваш лист должен соответствовать снимку экрана выше.

Добавьте новую вкладку и скопируйте в нее свой шаблон. Затем заполните данные о продажах за день. (Если у вас нет данных для заполнения этого листа, вы можете войти = RandBetween (10.1000) во всех ячейках, чтобы создать фиктивные данные.) Затем нажмите Разработчик в ленте.

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

Внизу почасовых отчетов введите Ежедневные итоги . В соседней ячейке введите = СУММ (B2: B10) . Затем скопируйте и вставьте это в остальные столбцы. Потом в шапке добавляем В среднем после последнего столбца. Затем в следующей ячейке вниз введите = Среднее (B2: F2) . Затем вставьте это в ячейки в остальной части столбца.

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

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

Макросы VBA в Excel на Mac

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

Добавьте на лист еще один час и день и запустите макрос. Вы увидите, что макрос перезаписывает ваши новые данные. Мы можем обойти это с помощью кода, чтобы сделать макрос более динамичным с помощью VBA, что является уменьшенная версия Visual Basic . Реализация ориентирована на автоматизацию Office.

Это не так легко подобрать как Applescript , но автоматизация Office полностью построена на Visual Basic. Так что, как только вы поработаете с ним здесь, вы сможете быстро развернуть и использовать его в других приложениях Office. (Это также может быть большим подспорьем, если вы застряли на работе с ПК с Windows.)

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

Office 2016 теперь поставляется с полным редактором Visual Basic. Он позволяет использовать обозреватель объектов и инструменты отладки, которые раньше были ограничены версией Windows. Вы можете получить доступ к обозревателю объектов, перейдя в Просмотр> Обозреватель объектов или просто нажмите Shift + Command + B . Затем вы можете просмотреть все доступные классы, методы и свойства. Это было очень полезно при построении кода в следующем разделе.

Пример 2: Общий объем продаж за день и средний почасовой показатель с кодом

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

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

Откроется окно Visual Basic; вы увидите это в списке как Модуль2 в браузере проекта. На панели кода будет Sub AverageandSumButton () вверху и на несколько строк вниз Конец подписки . Ваш код должен находиться между этими двумя, поскольку это начало и конец вашего макроса.

Шаг 1. Объявление переменных

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

Sub AverageandSumButton()
Dim RowPlaceHolder As Integer
Dim ColumnPlaceHolder As Integer
Dim StringHolder As String
Dim AllCells As Range
Dim TargetCells As Range
Dim AverageTarget As Range
Dim SumTarget As Range

Теперь, когда у вас есть все переменные, вам нужно сразу использовать некоторые из переменных диапазона. Диапазоны - это объекты, которые содержат разделы рабочего листа в качестве адресов. Переменная Все ячейки будут установлены для всех активных ячеек на листе, включая метки столбцов и строк. Вы получите это, позвонив в ActiveSheet объект, а затем это UsedRange имущество.

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

Вы называете это, звоня своему AllCells диапазон, используя его Клетки класс, чтобы получить эту конкретную ячейку, используя (2.2) . Чтобы получить последнюю ячейку в диапазоне, вы все равно вызовете AllCells . На этот раз используя SpecialCells метод получения собственности кслселтипеластцелл . Вы можете увидеть оба из них в блоке кода ниже.

Set AllCells = ActiveSheet.UsedRange
Set TargetCells = Range(AllCells.Cells(2, 2), AllCells.SpecialCells(xlCellTypeLastCell))

Шаг 2: для каждой петли

Следующие два раздела кода - это циклы For Each. Эти циклы проходят через объект, чтобы воздействовать на каждое подмножество этого объекта. В этом случае вы выполняете два из них: по одному для каждой строки и по одному для каждого столбца. Поскольку они почти такие же, здесь только один из них; но оба находятся в блоке кода. Детали практически идентичны.

Прежде чем запускать цикл для каждой строки, вам нужно установить целевой столбец, в который цикл записывает среднее значение каждой строки. Вы используете ColumnPlaceHolder переменная для установки этой цели. Вы устанавливаете его равным Считать переменная Клетки класс AllCells . Добавьте к нему один, чтобы переместить его справа от ваших данных, добавив +1 .

Затем вы собираетесь запустить цикл, используя Для каждого . Затем вы хотите создать переменную для подмножества, в данном случае subRow . После В , мы устанавливаем основной объект, который мы анализируем TargetCells . Добавить .Rows в конце, чтобы ограничить цикл только каждой строкой, а не каждой ячейкой в ​​диапазоне.

Внутри цикла вы используете метод ActiveSheet.Cells, чтобы установить конкретную цель на листе. Координаты задаются с помощью subRow.Row чтобы получить строку, в которой в данный момент находится цикл. Затем вы используете ColumnPlaceHolder для другой координаты.

Вы используете это для всех трех шагов. Первое, что вы добавляете .ценить после круглых скобок и установить равным WorksheetFunction.Average (subRow) . Это запишет формулу для среднего значения строки в целевую ячейку. Следующая добавляемая вами строка .Стиль и установите это равным 'Валюта' . Этот шаг соответствует остальной части вашего листа. В последней строке вы добавляете .Font.Bold и установите его равным Правда . (Обратите внимание, что это не заключено в кавычки, так как это логическое значение.) Эта строка выделяет шрифт жирным шрифтом, чтобы сводная информация выделялась среди остальной части листа.

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

как удалить аккаунт на ps4
ColumnPlaceHolder = AllCells.Columns.Count + 1
For Each subRow In TargetCells.Rows
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Value = WorksheetFunction.Average(subRow)
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Style = 'Currency'
ActiveSheet.Cells(subRow.Row, ColumnPlaceHolder).Font.Bold = True
Next subRow
RowPlaceHolder = AllCells.Rows.Count + 1
For Each subColumn In TargetCells.Columns
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Value = WorksheetFunction.Sum(subColumn)
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Style = 'Currency'
ActiveSheet.Cells(RowPlaceHolder, subColumn.Column).Font.Bold = 'True'
Next subColumn

Шаг 3. Обозначьте свои резюме

Затем пометьте новую строку и столбец, установите RowPlaceHolder а также ColumnPlaceHolder опять таки. Сначала используйте AllCells.Row чтобы получить первую строку в диапазоне, а затем AllCells.Column + 1 чтобы получить последний столбец. Затем вы будете использовать тот же метод, что и цикл, чтобы установить значение на 'Средние продажи' . Вы также будете использовать тот же .Font.Bold свойство, чтобы выделить новую метку жирным шрифтом.

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

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

ColumnPlaceHolder = AllCells.Columns.Count + 1
RowPlaceHolder = AllCells.Row
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Value = 'Average Sales'
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Font.Bold = True
ColumnPlaceHolder = AllCells.Column
RowPlaceHolder = AllCells.Rows.Count + 1
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Value = 'Total Sales'
ActiveSheet.Cells(RowPlaceHolder, ColumnPlaceHolder).Font.Bold = True
End Sub

Что дальше с макросами в Excel на Mac?

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

Visual Basic открывает пользователям Mac Excel возможность углубиться в автоматизацию Office. Visual Basic традиционно был доступен только в Windows. Это позволяет вашим макросам динамически адаптироваться к данным, делая их более универсальными. Если у вас хватит терпения, это может стать дверью к более сложному программированию.

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

Делиться Делиться Твитнуть Эл. адрес 3 способа проверить, является ли электронное письмо настоящим или поддельным

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

Читать далее
Похожие темы
  • Mac
  • Продуктивность
  • Программирование
  • Программирование на Visual Basic
  • Майкрософт Эксель
Об авторе Майкл МакКоннелл(Опубликовано 44 статей)

Майкл не использовал Mac, когда они были обречены, но он может писать код на Applescript. Имеет степени в области компьютерных наук и английского языка; он уже некоторое время пишет о Mac, iOS и видеоиграх; и он уже более десяти лет занимается ИТ-обезьяной, специализируясь на написании сценариев и виртуализации.

Ещё от Michael McConnell

Подписывайтесь на нашу новостную рассылку

Подпишитесь на нашу рассылку технических советов, обзоров, бесплатных электронных книг и эксклюзивных предложений!

Нажмите здесь, чтобы подписаться
Категория Mac