Excel vba публичные переменные

Глобальная переменная в проекте VBA Excel. Объявление глобальной переменной в модуле проекта VBA и обращение к ней из других модулей того же проекта.

Объявление глобальной переменной

Глобальная переменная — это переменная, которая объявлена в одном из модулей проекта VBA и доступна для использования во всех остальных модулях.

Чтобы переменная стала глобальной, она должна быть объявлена в начале модуля перед первой процедурой (раздел Declarations) с помощью оператора Public. Этот способ работает во всех модулях проекта VBA Excel.

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

Пример объявления глобальных переменных в любом модуле проекта VBA:

Public myGlobVar1 ‘по умолчанию — As Variant

Public myGlobVar2 As String

Public myGlobVar3 As Double

Объявление глобальных переменных

Объявление глобальных переменных

Обращение к глобальной переменной

Примеры обращения к глобальной переменной, объявленной в разных типах модулей проекта VBA Excel. Актуально для обращения из модуля любого типа данного проекта.

Переменная в стандартном модуле

Если глобальная переменная (myGlobVar) объявлена в стандартном модуле (Module1) с уникальным именем, не повторяющимся в других модулях, к ней можно обращаться из других модулей по одному имени (в примере — из модуля формы):

Private Sub CommandButton1_Click()

    myGlobVar = «Глобальная переменная»

    TextBox1.Text = myGlobVar

End Sub

Стандартное обращение с указанием имени модуля (Module1), в котором объявлена глобальная переменная (myGlobVar):

Private Sub CommandButton1_Click()

    Module1.myGlobVar = «Глобальная переменная»

    TextBox1.Text = Module1.myGlobVar

End Sub

Переменная в модуле книги

Глобальная переменная (myGlobVar), объявленная в модуле книги, доступна при обращении к ней из других модулей с помощью следующего кода VBA Excel:

Sub Primer1()

    ThisWorkbook.myGlobVar = «Глобальная переменная»

    MsgBox ThisWorkbook.myGlobVar

End Sub

Переменная в модуле листа

Обращение к глобальной переменной (myGlobVar), объявленной в модуле рабочего листа (Лист1), из других модулей по имени листа (в проводнике проекта находится без скобок слева от имени ярлыка):

Sub Primer2()

    Лист1.myGlobVar = «Глобальная переменная»

    MsgBox Лист1.myGlobVar

End Sub

По имени ярлыка (в проводнике проекта находится в полукруглых скобках справа от имени листа):

Sub Primer3()

    Worksheets(«Лист1»).myGlobVar = «Глобальная переменная»

    MsgBox Worksheets(«Лист1»).myGlobVar

End Sub

Переменная в модуле формы

Глобальная переменная (myGlobVar), объявленная в модуле формы (UserForm1), доступна при обращении к ней из других модулей с помощью следующего кода VBA Excel:

Sub Primer4()

    UserForm1.myGlobVar = «Глобальная переменная»

    MsgBox UserForm1.myGlobVar

End Sub

Переменная в личной книге макросов

Обращение к глобальной переменной (myGlobVar), объявленной в модуле ЭтаКнига проекта VBAProject (PERSONAL.XLSB) из модуля проекта VBA обычной книги Excel:

Sub Primer5()

    Workbooks(«PERSONAL.XLSB»).myGlobVar = «Глобальная переменная»

    MsgBox Workbooks(«PERSONAL.XLSB»).myGlobVar

End Sub

Мне не удалось получить доступ из проекта VBA текущей книги Excel к глобальной переменной, объявленной в стандартном модуле личной книги макросов.


В данной статье мы рассмотрим работу с локальными и глобальными переменными VBA языка, а именно: как ведут себя переменные, объявленные в блоке модуля и в блоке отдельной процедуры; познакомимся с ключевыми словами Public, Private и Static; Определим логику назначении типов данных при объявлении нескольких переменных в одной строке; напишем парочку примеров.

В прошлых статьях мы кратко рассмотрели переменные и типы данных, теперь настало время более подробно вникнуть во все тонкости…

Содержание

  1. Объявление нескольких переменных VBA
  2. Объявление переменных в VBA локальной и глобальной видимости
  3. Ключевые слова Private, Public и Static

Объявление нескольких переменных VBA

Рассмотрим такой пример: надо объявить три переменные разного типа, например, Byte, String и Long, это может выглядеть так:

dim A as Byte, B as String, C as Long

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

Тут A и В будут типа Variant и только C – Long. Что бы все правильно сработало, нам нужно каждой переменной назначить заданный тип:

dim A as Long, B as Long, C as Long

Объявление переменных в VBA локальной и глобальной видимости

Если переменная VBA объявлена в начале модуля, то она сохраняется в памяти до тех пор, пока работает макрос, если объявление происходит в теле процедуры, то переменная будет удалена из памяти сразу, после выполнения блока кода заданной процедуры. Добавьте в редакторе Visual Basic новую форму и модуль.

Параметры формы: разместите на форме три компонента Label и три кнопки, как показано на рисунке. Имя формы (свойство Name) – VariableForm, имя модуля – VariableModule.

В редакторе кода для модуля пропишите:

Sub VariableModule()
    VariableForm.Show
End Sub

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

В редакторе кода для формы пропишите:

'**************************************************
' Объявление локальных и глобальных переменных в VBA
'**************************************************
 
' Включаем проверку переменных VBA
Option Explicit
 
' Глобальная переменная
Dim GVar As Integer
'Нельзя присвоить значение вне процедуры!!!
'GVar = 10
Sub GetGlobal()
    ' Увеличиваем значение на 5
    GVar = GVar + 5
    Label1.Caption = "Глобальное значение " & GVar
End Sub
Sub GetLocal_1()
Dim LVar As Integer
    ' Увеличиваем значение на 2
    LVar = LVar + 2
    Label2.Caption = "Локальное значение " & LVar
End Sub
Sub GetLocal_2()
Dim LVar As Integer
    ' Увеличиваем значение на 3
    LVar = LVar + 3
    Label3.Caption = "Локальное значение " & LVar
End Sub
 
Private Sub CommandButton1_Click()
    Call GetGlobal
End Sub
 
Private Sub CommandButton2_Click()
    Call GetLocal_1
End Sub
 
Private Sub CommandButton3_Click()
    Call GetLocal_2
End Sub
 
Private Sub UserForm_Click()
 
End Sub
 
Private Sub UserForm_Initialize()
    ' настройка первого текстового поля
    Label1.FontSize = 12
    Label1.ForeColor = &HFF0000
    Call GetGlobal
 
    ' настройка второго текстового поля
    Label2.FontSize = 12
    Label2.ForeColor = &H6400
    Call GetLocal_1
 
    ' настройка третьего текстового поля
    Label3.FontSize = 12
    Label3.ForeColor = &HFF
    Call GetLocal_2
End Sub

В самом начале мы объявляем глобальную переменную VBA – GVar типа Integer, в комментарии указано, что вне процедуры присвоить значение переменной нельзя. Далее следуют три процедуры, в первой процедуре происходит увеличение значение глобальной GVar на 5, результат будет записываться в свойство Caption первого компонента Label. Вторя и третья процедуры производят аналогичные действия, только для объявленных в них локальных переменных VBA, LVar, происходит увеличение значения на 2 и на 3, соответственно. События Click (нажатие кнопки мыши) для кнопок будет вызывать заданные процедуры.

Объявление VBA переменных

При запуске макроса в полях будут отображаться значения 5, 2 и 3. При нажатии на “Кнопка 1” будет происходить вызов процедуры GetGlobal и увеличение значения переменной GVar на 5. Для “Кнопка 2” и “Кнопка 3” будут вызываться процедуры GetLocal_1 и GetLocal_2, однако ничего увеличиваться не будет, так как переменные LVar являются локальными и при каждом вызове заданных процедур их значение будет обнуляться.

Ключевые слова Private, Public и Static

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

Public – позволяет сделать переменную VBA доступной из любой части проекта, однако, это будет актуальным лишь в том случае, если объявление переменных в VBA происходит в разделе Declarations (Объявления) самого модуля. Если же вы пропишите Public вместо Dim в теле процедуры, то видимость все ровно будет доступна только в данной процедуре.

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

Sub GetLocal_1()
Static LVar As Integer
    ' Увеличиваем значение на 2
    LVar = LVar + 2
    Label2.Caption = "Локальное значение " & LVar
End Sub
Sub GetLocal_2()
Static LVar As Integer
    ' Увеличиваем значение на 3
    LVar = LVar + 3
    Label3.Caption = "Локальное значение " & LVar
End Sub

Мы просто изменили ключевое слово Dim на Static, и теперь переменные LVar не будут удаляться из памяти после выполнения процедур. Объявление переменных в VBA. Обратите внимание, что мы объявили переменные с одним именем, это можно, так как они находятся в отдельных процедурах.

Return to VBA Code Examples

We have already covered an introduction to variables, constants and VBA data types in an introductory tutorial. We are going to cover Public variables in this tutorial. The definition of a Public variable is a variable that any module, Sub Procedure, Function or Class can access and use within a certain workbook.

Declaring a Public Variable in VBA

There are five main keywords that you can use to declare a variable in VBA. These are:

  • The Dim keyword
  • The Static keyword
  • The Global keyword
  • The Public keyword
  • The Private keyword

The Global variable and the Public variable are very similar.

In order to declare a Public variable, you have to place your variable in the Declarations section of your VBA code below the Option Explicit statement, outside of any of your Sub Procedures or Functions and you also have to use the Public keyword. This is shown below:

Declaring a Public Variable

Public MyVariable as Integer

When you declare a variable as a public variable, you are also inferring to the scope of that variable. You determine the scope of a variable by the keyword you use to declare it and where you place it in your code.

VBA Coding Made Easy

Stop searching for VBA code online. Learn more about AutoMacro – A VBA Code Builder that allows beginners to code procedures from scratch with minimal coding knowledge and with many time-saving features for all users!

alt text

Learn More!

<<Return to VBA Examples

 

Здравствуйте, уважаемые эксперты.

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

1. Где её объявить ? В «Эта книга» ?
2. Как правильно ?

Сделал так, неверно.
Public ws As Worksheet
Set ws = ThisWorkbook.Worksheets(«ИмяЛиста»)

Пробовал еще всякие комбинации. Не нашел решения.
Заранее спасибо.

Изменено: Сергей Евдокимов11.04.2022 07:27:30

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

 

Дмитрий(The_Prist) Щербаков

Пользователь

Сообщений: 14181
Регистрация: 15.09.2012

Профессиональная разработка приложений для MS Office

#2

11.04.2022 07:37:27

Цитата
Сергей Евдокимов написал:
1. Где её объявить ? В «Эта книга» ?

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

Цитата
Сергей Евдокимов написал:
Пробовал еще всякие комбинации. Не нашел решения.

Что такое переменная и как правильно её объявить?

Изменено: Дмитрий(The_Prist) Щербаков11.04.2022 07:38:36

Даже самый простой вопрос можно превратить в огромную проблему. Достаточно не уметь формулировать вопросы…

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

#3

11.04.2022 07:42:46

Цитата
Сергей Евдокимов написал:
Нужно один раз объявить переменную (а можно и константу), присвоить ей значение и использовать во всех листах и модулях книги. До её закрытия.

1. Константа — Ей нельзя присвоить что-то сложновычисляемое, и ссылкой на объект она быть точно не может.
2. Публичная переменная — ну объявив в обычном модуле вы получите желаемое
3. А вот присвоив один раз и использовать до закрытия — плохая идея, которая в случае сброса , который приведет к обнулению всех переменных , приведет к ошибке. Просто ради эксперимента присвойте что-то , после введите END. Посмотрите то останется. От сюда вывод, в зависимости от задачи, может это допустимо а может лучше хранить что-то в сервисном листе.

Изменено: БМВ15.04.2022 17:40:14

По вопросам из тем форума, личку не читаю.

 

Общие сведения об области и видимости переменных VBA

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

Сергей Евдокимов

Пользователь

Сообщений: 442
Регистрация: 17.10.2013

(Win’11-Excel’21/365)

#5

11.04.2022 10:22:12

Дмитрий(The_Prist) Щербаков, Спасибо.
Нашел у вас ответ на первый свой вопрос.

Где объявлять глобальную переменную

Здесь у меня точно была ошибка.

Присваивать значение переменной можно только внутри процедуры ?

Цитата
БМВ написал:
Константа — … ссылкой на объект она быть не может.

Спасибо. Теперь буду знать.

Цитата
БМВ написал:
3. А вот присвоив один раз и использовать до закрытия — плохая идея

У меня получилось, что одно и то же 7 раз в разных процедурах присваиваю (Set ws = ThisWorkbook.Worksheets(«ИмяЛиста»))
Поэтому и задался вопросом. Разве так правильно ?

Изменено: Сергей Евдокимов11.04.2022 10:57:10

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

 

Jack Famous

Пользователь

Сообщений: 10846
Регистрация: 07.11.2014

OS: Win 8.1 Корп. x64 | Excel 2016 x64: | Browser: Chrome

#6

11.04.2022 10:25:21

Цитата
Сергей Евдокимов: Нашел у вас ответ на первый свой вопрос

вам прямо он был написан тут же первым ответом

Цитата
Дмитрий(The_Prist) Щербаков: в любом стандартном модуле. На событие открытия книги присваивать значение

Цитата
Сергей Евдокимов: Присваивать значение переменной можно только внутри процедуры ?

у вас за строку в VBA надо деньги платить? Попробуйте и узнаете — больше времени на вопрос потратили, чем на такую проверку. Если переменная НЕ КОНСТАНТА (которой присваивать значение можно только при объявлении) и переменная ВИДНА, то менять её значение МОЖНО.

Во всех делах очень полезно периодически ставить знак вопроса к тому, что вы с давних пор считали не требующим доказательств (Бертран Рассел) ►Благодарности сюда◄

 

Сергей Евдокимов

Пользователь

Сообщений: 442
Регистрация: 17.10.2013

(Win’11-Excel’21/365)

#7

11.04.2022 10:41:39

Цитата
Jack Famous написал:
вам прямо он был написан тут же первым ответом

Да. Спасибо. Я просто не знал, что
Модуль — это стандартный модуль, а
Модуль книги — это НЕстандартный модуль

Дмитрий

внёс

ясность.

Изменено: Сергей Евдокимов11.04.2022 10:44:04

Компьютер никогда не заменит человека (©️ Hannibal Lecter)

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

#8

11.04.2022 11:43:53

Цитата
Сергей Евдокимов написал:
Поэтому и задался вопросом. Разве так правильно ?

Смотря для чего вы и что делаете. Если это результат вычислений или параметрическая таблица, которая потом используется много раз в других процедурах, то это позволяет не заботится о передаче её в процедуры, ну и инициализировать один раз. Если например нужно зафиксировать лист , который был при открытии, то тоже можно, но  как я уже писал, при сбросе, переменная будет пустой что станет сюрпризом.
Кстати если много раз делается такое Set ws = ThisWorkbook.Worksheets(«ИмяЛиста»)
то скорее нужно прописать отдельную функцию, даже из одной строки, хоть это приведет к лишним строкам но в случае изменения ИмяЛиста это потребуется только в одном месте .

По вопросам из тем форума, личку не читаю.

 

или «ИмяЛиста» сделать глобальной константой

Программисты — это люди, решающие проблемы, о существовании которых Вы не подозревали, методами, которых Вы не понимаете!

 

БМВ

Модератор

Сообщений: 21376
Регистрация: 28.12.2016

Excel 2013, 2016

#10

11.04.2022 12:58:30

Цитата
Ігор Гончаренко написал:
или «ИмяЛиста» сделать глобальной константой

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

По вопросам из тем форума, личку не читаю.

  • Открытая переменная Excel VBA

Открытая переменная Excel VBA

Переменная является важной частью жизни программистов. Каждый раз, когда программист кодирует, он создает некоторый набор переменных. Переменную можно рассматривать как ваучер, который мы часто используем на сайтах онлайн-покупок, таких как Flipkart, Amazon и т. Д., Который позволяет получить определенную скидку на определенные товары заранее. То же самое в случае с переменной. Переменная может быть грамматически определена как заполнитель, который резервирует некоторую память в системе с определенным именем. Это пространство памяти может быть использовано в любое время с тем же именем.

Переменная VBA считается общедоступной переменной в двух случаях. Когда —

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

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

Прежде чем начать концепцию VBA Public Variable, мы должны понять, что переменные, которые используются в одной подпроцедуре, не могут использоваться в другой подпроцедуре (именно здесь мы начали чувствовать необходимость наличия общедоступной переменной который может использоваться в любом модуле, любой подпроцедуре).

Предположим, что мы создаем подпроцедуру в VBA и определяем новую переменную там, используя оператор Dim.

В этом коде var1 — это переменная, определенная в подпроцедуре Ex_Var .

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

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

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

Как объявить публичные переменные в VBA?

Давайте рассмотрим несколько примеров объявления открытых переменных в VBA.

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

Пример № 1 — Публичное определение переменной в модуле

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

Шаг 1. Откройте редактор Visual Basic (VBE), нажав Alt + F11 или нажав кнопку Visual Basic на вкладке Разработчики в Excel. Выберите вкладку «Вставка», перейдите к «Модули» и нажмите на нее. Он добавит новый модуль в VBE для работы.

Шаг 2: В только что созданном модуле добавьте команду Option Explicit в начале кода VBA (перед созданием любой переменной). Опция Explicit помогает вам, если есть какая-либо опечатка при использовании определенной переменной. Если используемая переменная не определена в системе, эта опция выдает сообщение об ошибке о том, что переменная не определена.

Код:

 Вариант Явный 

Шаг 3: Используйте оператор Dim для создания новой переменной с именем my_name с типом данных как String.

Код:

 Опция Явный Dim my_name As String 

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

Предположим, что код приведен ниже, я присвоил значение переменной my_name как «Lalit Salunkhe».

Код:

 Параметр Явный Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Меня зовут:" & my_name End Sub 

Если я выполню этот код, я увижу окно сообщения, как показано на скриншоте ниже:

Мы также можем использовать эту переменную в разных подпроцессах в одном и том же модуле. Смотрите скриншот, приведенный ниже:

Код:

 Опция Явное Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Меня зовут:" & my_name End Sub Sub Ex_2 () Dim my_age As Integer my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Меня зовут: "& my_name &"; Мой возраст: "& my_age End Sub 

Смотрите подпроцесс Ex_2. У него есть новая переменная, определенная my_age. Я использовал my_name, чтобы добавить свое имя, и my_age, чтобы добавить мой возраст. Вы можете видеть, что my_name все еще доступно во второй подпроцедуре. После запуска этого кода мы можем получить вывод в виде окна сообщения, показанного ниже:

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

Пример № 2 — Определение переменной публично для всех модулей

Чтобы достичь этого навыка, вам нужно использовать ключевые слова как Public или Global вместо Dim, который устанавливает переменную как public для всех модулей, где бы вы ни работали.

Шаг 1: Создайте новый модуль. Перейдите на вкладку « Вставка », нажмите « Модуль», чтобы добавить новый модуль в VBE.

Шаг 2: Добавить опцию Явный в модуле.

Код:

 Вариант Явный 

Шаг 3: Определите новую переменную с именем var1 и var2 как целое число типа. Но на этот раз мы используем Public вместо Dim (который мы использовали ранее).

Код:

 Опция Явный Public var1 As Integer Public Var2 As Integer 

Шаг 4: Теперь эти две переменные можно использовать в нескольких модулях, если они созданы в одном VBE. Смотрите пример, приведенный ниже:

Код:

 Опция Явный Public var1 As Integer Public var2 As Integer Sub Ex_3 () var1 = 10 var2 = 100 MsgBox "Значение для var1 равно:" & var1 & Chr (13) & "Значение для var2 равно:" & var2 End Sub 

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

Шаг 5: Запустите код, нажав клавишу F5 или нажав кнопку Play, вы можете увидеть результат, как показано ниже:

Шаг 6: Мы будем использовать те же переменные в модуле Module1, которые мы использовали в первом примере, и попытаемся выяснить, доступны ли переменные там или нет.

Код:

 Опция Явное Dim my_name As String Sub Ex_1 () my_name = "Lalit Salunkhe" MsgBox "Меня зовут:" & my_name End Sub Sub Ex_2 () Dim my_age As Integer my_name = "Lalit Salunkhe" my_age = 28 MsgBox "Меня зовут: "& my_name &"; Мой возраст: "& my_age End Sub Sub Ex_public () var1 = 1000 var2 = 999 MsgBox" Значение для var1 равно: "& var1 & Chr (13) &" Значение для var2 равно: "& var2 End Sub 

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

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

То, что нужно запомнить

  • Всегда предпочтительно определять переменные явно в VBA. Так что они не ограничены подпроцедурой, в которой они определены.
  • Вы можете назначить общедоступную переменную двумя способами: один внутри модуля, используя обычный оператор Dim, и второй для всех модулей, представленных в VBE, используя оператор Public или Global.

Рекомендуемые статьи

Это руководство по VBA Public Variable. Здесь мы обсуждаем, как объявить общедоступную переменную в Excel, используя код VBA в Excel, вместе с практическими примерами и загружаемым шаблоном Excel. Вы также можете просмотреть наши другие предлагаемые статьи —

  1. VBA Global Variables
  2. Одна переменная таблица данных в Excel
  3. VBA FileSystemObject (FSO)
  4. Таблица двух переменных данных в Excel

Понравилась статья? Поделить с друзьями:
  • Excel vba продолжение строки
  • Excel vba прогресс бар
  • Excel vba проверка ячейки на число
  • Excel vba проверка файла на открытие
  • Excel vba проверка строки на пустоту