VBA с | Как использовать с ... Завершить с выражением в Excel VBA?

С заявлением в Excel VBA

Оператор With используется в VBA для доступа ко всем свойствам и методам упомянутого объекта. Нам нужно сначала указать, на какой объект VBA мы ссылаемся, затем закрыть оператор With с помощью End With , а затем внутри этого оператора мы можем выполнить все изменения свойств и методов упомянутого объекта.

Ниже приведен синтаксис оператора With в VBA.

 С помощью [ОБЪЕКТ] [Код… Что делать?] В конце 

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

Как использовать с выражением в Excel VBA?

Ниже приведены несколько примеров использования оператора With в Excel VBA.

Вы можете скачать этот VBA с шаблоном Excel здесь - VBA с шаблоном Excel

Пример # 1

Предположим, у вас есть определенное значение в ячейке A1, я ввел текст как «Excel VBA» в ячейку A1.

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

Я хочу изменить размер шрифта, имя шрифта и внутренний цвет, вставить границу и т. Д. Обычно мы сначала ссылаемся на ячейку, используя объект VBA RANGE.

Код:

 Sub With_Example1 () Диапазон ("A1") End Sub 

Теперь, чтобы изменить размер шрифта, мы обращаемся к свойству «font» этой ячейки.

В свойстве FONT мы получаем доступ к свойству Size и вводим размер, ставя знак равенства.

Код:

 Sub With_Example1 () Диапазон ("A1"). Размер шрифта = 15 End Sub 

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

Код:

 Sub With_Example1 () Range ("A1"). Font.Size = 15 Range ("A1"). Font.Name = "Verdana" Range ("A1"). Interior.Color = vbYellow Range ("A1"). Borders .LineStyle = xlContinuous End Sub 

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

Теперь мы будем использовать оператор VBA With, чтобы каждый раз сокращать ввод адреса ячейки. Откройте оператор WITH в Excel VBA и укажите адрес ячейки.

Код:

 Sub With_Example1 () с диапазоном ("A1") End Sub 

Внутри оператора With поставьте точку, чтобы увидеть все свойства и методы ячейки A1.

Теперь первое действие по форматированию - это изменение размера шрифта, поэтому войдите в FONT и под этим свойством SIZE.

Код:

 Sub With_Example1 () With Range ("A1") .Font.Size = 15 End Sub 

Точно так же укажите другие коды форматирования и закройте VBA With Statement.

Код:

 Sub With_Example1 () с диапазоном ("A1") .Font.Size = 15 .Font.Name = "Verdana" .Interior.Color = vbYellow .Borders.LineStyle = xlContinuous End With End Sub 

Запустите код, чтобы увидеть все форматирование в упомянутом объекте, то есть в ячейке A1.

Итак, к ячейке применено все форматирование. Посмотри, какая крутая эта техника.

Пример # 2

Например, если вы хотите изменить все свойства, относящиеся к шрифту, вы можете указать ячейку и свойство FONT.

Код:

 Sub With_Example2 () с диапазоном ("A1"). Font End With End Sub 

Внутри инструкции vba With мы видим список IntelliSense, в котором будут показаны свойства и методы, относящиеся только к свойству FONT.

Теперь мы можем выполнять любой набор действий.

Код:

 Sub With_Example2() With Range("A1").Font .Bold = True 'Font will be Bold .Color = vbAlias 'Font color will be Alias .Italic = True 'Font will be italic style .Size = 20 ' Font size will be 20 .Underline = True 'Font will be underlined End With End Sub 

The result of this will be as shown below.

Example #3

Below code will access only cell border-related properties.

Code:

 Sub With_Example3() With Range("B2").Borders .Color = vbRed 'Border color will be red .LineStyle = xlContinuous 'Full border .Weight = xlThick 'Thick border End With End Sub 

The result of this code is as follows.

Things to Remember

  • With statement is used to minimize the code.
  • We need to supply object first for With statement.
  • Once the specific object is supplied we can access only that object’s properties and methods.