Pi的值为3.14,地球的引力为9.8 m / s ^ 2 ^,您对VBA感兴趣,等等。这些都是常数,不会改变。

image

在VBA中,您可以定义其值无法在程序中更改的变量。 VBA程序员在程序中自行定义了这些常数值,以便一次又一次地使用它们。

如何在VBA中定义常数?我们使用关键字Const *在VBA中声明一个常量。

在VBA中声明常量变量的语法为:

[<Scope Specifier>] Const <VarName> as <variable_type> = <value>

注意:我们从不使用Dim关键字在VBA中声明常量。

<VarName>:它是常量变量的名称。

<variable_type>:常量的类型。例如,整数,字符串,日期等。

<值>:*常量变量的值。

常量变量的一个简单示例是:

Const pi as double = 3.14

在这里,我们在名为_pi_的变量中声明了pi的常量值。现在我们可以在程序中使用此pi。该值将始终为3.14。如果您尝试更改常量变量的值,Excel VBA将弹出一条错误消息。

VBA常量变量示例研究以下代码:

Const pi As Double = 3.14

Const rad As Double = 6371

Sub Earth()

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

Sub Mars()

rad = 3389.5

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

在这里,我们定义了两个常数pi和rad。 pi的值为3.14,rad为6371,即地球的半径。

现在,当我们运行第一个子地球时,它可以完美工作并打印地球的表面积。

在下一个子火星中,由于火星半径不同,我们重新定义了常数rad。当我们运行该程序时,它会引发错误,指出“不允许分配给常数”。

image

如何在VBA中重新初始化常量

正如您在上面的示例中看到的那样,我们无法为常量分配新值。是的,你不能。

但是,如果仍然需要使用相同的名称作为不同的固定值,则只需在分配前使用Const *关键字即可。

下面的代码将完美地工作。

Const pi As Double = 3.14

Const rad As Double = 6371

Sub Earth()

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

Sub Mars()

Const rad = 3389.5

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

上面的子例程将完美运行,没有任何错误。但是我不推荐这种方法。最好的方法是识别公共常数和私有常数,并分别定义它们。这将我们带入下一个细分市场。

VBA中的公共和私有常量正如我们在上面的示例中了解到的那样,某些常量可能是通用的,而某些常量对于不同的对象可能有所不同。像pi值在整个宇宙中都是恒定的,但是太阳系与太阳系之间的行星数量以及行星半径均因行星而异。

因为地球的半径是恒定的,而不是宇宙的恒定。

同样,在程序中,对于整个VBA项目,某些常量将是sub和模块的私有常量,而某些则是公共的常量。您的工作是识别它们并以不同的方式声明它们。

让我们再举一个例子:

Public Const pi As Double = 3.14     ' This can be accessed from any module in the project

Private Const planets As Integer = 8 ' this is private to this module

Sub Earth()

Const rad As Double = 6371    'Private to this subroutine. Can't be accessed outside

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

Sub Mars()

Const rad As Double = 3389.5 'Private to this subroutine. Can't be accessed outside

sArea = 4  pi  Sqr(rad)

Debug.Print sArea

End Sub

这是一个简单的变量范围指定。您可以阅读有关变量作用域设置`link:/ general-topics-in-vba-excel-vba-variable-scope [此处详细介绍]`。

好的,这就是您在Excel VBA中声明和使用常量的方式。我试图以一种创造性的方式来解释。我希望我能解释得足够。如有疑问,请在下面的评论部分中提问。我很高兴听到您的回覆。

相关文章:

Excel VBA变量范围 ||我们具有变量访问说明符,用于定义从何处可以访问已定义的变量。 Excel VBA也不例外。 VBA也具有范围说明符。这些作用域说明符可用于设置Excel VBA中变量的可见性/范围。

link:/在vba中的单元格范围行和列是什么,byref和byval参数之间的差异是vba面试问题[ByRef和ByVal参数]|何时一个参数作为ByRef参数传递给另一个子或函数,然后发送实际变量的引用。对变量副本所做的任何更改都将反映在原始参数中。

在不使用确认提示的情况下删除表,在Microsoft Excel中使用VBA进行提示您正在使用VBA删除工作表,就知道您在做什么。您想告诉Excel不要显示此警告并删除该死的表。

在Microsoft Excel 2016中使用VBA添加和保存新工作簿] |在此代码中,我们首先创建了对工作簿对象的引用。然后,我们使用一个新的工作簿对象对其进行了初始化。这种方法的好处是您可以轻松地对此新工作簿进行操作。像保存,关闭,删除等一样,link:/ menus-toolbars-status-bar-in-vba-在Microsoft Excel中使用vba-显示状态栏上的消息[Excel VBA状态栏]Excel中的状态栏可用作代码监视器。当您的VBA代码冗长且您使用VBA执行多项任务时,通常会禁用屏幕更新,以免看到屏幕闪烁的“ link:/ general-topics-in-vba-turn-off-warning-messages- using-vba-in-microsoft-excel [在Microsoft Excel 2016中使用VBA关闭警告消息]|此代码不仅禁用VBA警报,而且还提高了代码的时间效率。让我们看看如何。

热门文章:

`link:/ keyboard-formula-shortcuts-50-excel-shortcuts可提高您的生产率[50 Excel快捷方式可提高生产率]] |更快地完成任务。这50个快捷键将使您在Excel上的工作速度更快。

link:/ vlookup-functions的公式和函数介绍[Excel中的VLOOKUP函数]|这是excel中最常用和最受欢迎的功能之一,用于从不同范围和工作表中查找值。

link:/ tips-countif-in-microsoft-excel [Excel 2016中的COUNTIF]|使用此惊人的功能对条件进行计数。您无需过滤数据即可计算特定值。

Countif功能对于准备仪表板至关重要。

link:/ excel-formula-and-function-excel-sumif-function [如何在Excel中使用SUMIF函数]|这是仪表板的另一个重要功能。这可以帮助您汇总特定条件下的值。