VBA公共变量|如何在VBA中声明公共变量(示例)

VBA中的公共变量

顾名思义,VBA中的“公共变量”是声明为供我们在同一模块以及不同模块中编写的所有宏公开使用的变量。因此,当在任何宏的开头声明变量时,称为“公共变量”或“全局变量”。

如何在VBA中声明公共变量?

通常,我们启动VBA子过程,并在子过程中声明变量。这是我们在本文之前所做的普遍做法。

您可以在此处下载此VBA公共变量Excel模板– VBA公共变量Excel模板

每次编写新的子过程时,我们都会声明具有分配给它们的数据类型的新鲜变量。但是今天,我们将告别子过程中的重复变量。

让我们回顾一下旧样式,以下是我用单个变量编写的代码。

在子过程“ Public_Variable”中,我声明了此变量。现在,我不能使用任何其他模块。

现在,在子过程“ Public_Variable1”中,我们不能使用在第一个子过程“ Public_Variable”中声明的变量“ Var1”。这是在子过程内部声明变量的限制。

#1 –模块级变量

众所周知,我们在模块中编写宏,我们可以插入许多模块。我们可以在VBA中声明两种“公共变量”,一种是将变量用于同一模块中的所有子过程,另一种是将变量用于所有模块中的所有子过程。

首先,我们将看到在模块级别在VBA中声明公共变量。

若要将变量用于同一模块中的所有子过程,我们需要在启动任何宏之前在模块顶部声明变量。

以下是示例屏幕截图,供您理解。

如上图所示,在启动模块中的任何宏之前,我已经声明了两个变量。现在,这两个变量可以在此模块中的任意数量的宏中使用。

在子过程中开始输入变量名,您可以看到IntelliSense列表将显示变量名。

现在,我们可以在“ Module1”中编写的所有宏中使用这些变量。

这些变量仅限于在此模块中使用。例如,现在我将再插入一个模块并编写一个新的宏。

在Module2中,我无法使用我们在“ Module1”中声明的那些变量。

那么,如何在VBA中将这些变量公开,以在所有模块和所有子过程中使用?

#2 –声明变量公开使用它们

回到本模块的“ Module1”,我们在开始编写宏的方式之前已经声明了变量,还介绍了用来声明这些变量的世界。

我们使用“ DIM”一词的传统方式已经声明了这些变量。

当我们仅使用“ DIM”一词时,它仅限于在所有宏中使用,但在同一模块中使用。

代替“ DIM”一词,我们需要使用“ PUBLIC”或“ GLOBAL”一词,以使它们可用于宏的所有模块。

我使用“全局”一词来公开变量声明。您也可以使用“公共”一词。

因此,通过使用单词“ Global”和“ Public”,我们可以声明可用于模块中所有宏的变量。

要记住的事情

  • 公开声明变量是一个好习惯,但是在声明变量之前需要丰富的经验。
  • 一旦宏开始跨宏运行,则变量的值将相同。
  • 将特定值分配给特定宏内的变量只是为了避免造成任何混乱。