在VBA中的Subs(带有模块)中定义变量

Syc*_*lue 2 variables excel vba

想要在模块的一个位置定义引用变量(使用ActiveSheet.Cells [row,col]从工作表中的单元格调用值),以便在MS Excel文件中的多个子项中使用。该文件是一个动作跟踪器,subs使某些电子邮件自动执行(每个subs在给定条件下打开电子邮件)。每个子项的所有参考变量都相同-在一个地方进行定义将使电子表格的维护变得更加简单。

试图在第一个子控件上方定义变量,错误消息出现在第一个值上(如下所述)。我已经搜索了(a)全局变量和(b)如何在子对象上方进行定义。但是(a)所有变量都在同一模块中(b)错误消息,如下所述。我尚未找到有关使用ActiveSheet.Cells()引用定义变量的指南。

Option Explicit
'Defines variables for all macros:

'Defining Reference Variables
Today = ActiveSheet.Cells(2, 4)
ActionLogTitle = ActiveSheet.Cells(3, 3)
IPT_Leader = ActiveSheet.Cells(7, 7)
Run Code Online (Sandbox Code Playgroud)

(关于Today = ActiveSheet.Cells(2,4)错误,高亮显示为“ 2”)

编译错误:无效的外部过程

Tim*_*ams 5

正如编译器所提示的那样,您不能在Sub / Function之外编写分配。

您可以为每个变量声明一个函数:

Function MyValue()
    MyValue = ActiveSheet.Cells(2, 4).Value
End Function
Run Code Online (Sandbox Code Playgroud)

理想情况下,除非您确实要使用ActiveSheet,否则不要使用ActiveSheet。