Как использовать вложенный оператор vba with?

Ключевые моменты

  • Используйте оператор VBA With, чтобы минимизировать код.
  • При использовании оператора With вы можете использовать только один объект одновременно.

Что такое VBA с декларацией

VBA With — это оператор для однократного указания объекта и последующего выполнения для него нескольких операторов. Проще говоря, используйте оператор «WITH» для указания объекта, после чего вы можете получить доступ ко всем свойствам и методам за один раз. Он начинается с «With» и заканчивается «Finish with».

Синтаксис VBA с оператором

Вот синтаксис, который вам нужно использовать для использования оператора With в VBA:

 With [OBJECT] [Statement] End With
vba-синтаксис-с-оператором
  1. With : это начальное ключевое слово оператора, которое сообщает VBA, что вы указываете упомянутый объект.
  2. Объект : Здесь вам нужно указать объект, который вы хотите использовать.
  3. Оператор : один или несколько операторов, которые вы хотите выполнить с указанным объектом.
  4. End With : это конечное ключевое слово оператора.

Пример для понимания VBA With Statement

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

 Range("A1").Font.Color = RGB(0, 0, 255) Range("A1").Font.Size = 16 Range("A1").Font.Name = "Consolas"

Но здесь мы собираемся использовать оператор With вместо приведенного выше кода. Чтобы использовать оператор VBA With, вы можете выполнить следующие шаги:

  1. Сначала введите на клавиатуре «С».
  2. После этого используйте диапазон VBA, чтобы указать ячейку A1, используя объект шрифта, чтобы указать объект шрифта.
    use-the-vba-range
  3. Далее вам нужно ввести код трех свойств и значения, которые вы хотите применить.
    code-for-all-three-properties
  4. В конце используйте ключевое слово «End With», чтобы завершить утверждение.
    end-with-to-end-the-statement

Вот код, который вы только что написали.

 Sub MyMacro() With Range("A1").Font .Color = RGB(0, 0, 255) .Size = 16 .Name = "Consolas" End With End Sub

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

посмотрите на два кода

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

Но во втором коде вы использовали оператор With и сразу указали объект шрифта. А затем три строки кода в операторе With для доступа к трем свойствам.

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

Вложенный с оператором

Вначале я говорил вам, что вы можете указать только один объект для использования оператора With. Но есть способ использовать с ним более одного или даже нескольких предметов. Здесь используется VBA LOOPS , и мы собираемся использовать FOR EACH LOOP для циклического перебора нескольких объектов и использования «With».

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

  • Размер шрифта: 16
  • Шрифт: Вердена

В книге у вас есть пять листов, как в следующем примере:

вложенный с оператором

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

  1. Во-первых, вы должны объявить переменную, чтобы использовать объект рабочего листа.
    steps-to-write-nested
  2. После этого, как я уже сказал, вам нужно использовать For Each Loop . Итак, вам нужно написать код с циклом, который сможет проходить через все листы .
    write-code-with-the-loop
  3. Теперь введите оператор with, который может применить настройку шрифта , которую мы обсуждали выше. Чтобы обратиться ко всем ячейкам на листе, вы можете использовать «Ячейки» при указании темы.
    use-cells-while-specifing-the-object

Вот полный код, который вы только что написали.

 Sub MyMacro() Dim ws As Worksheet For Each ws In ActiveWorkbook.Worksheets With Cells .Font.Size = 16 .Font.Name = "Verdena" End With Next ws End Sub

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *