Excel VBA保持在输入区域中收集输入参数

Excel VBA保持在输入区域中收集输入参数,vba,excel,input,Vba,Excel,Input,目前,我正在从事一个VBA项目,其中包含大量必需的子例程。我想做的是创建一个“输入函数”,其中包含代码的所有基本输入参数 目前,我需要在每个子例程中声明我的变量,这意味着如果其中一个变量发生更改,我需要遍历整个代码来更改它们。拥有一个输入域,就可以只进行一次更改,而不必经过整个模块 在MATLAB中,我将创建一个单独的脚本,即包含所有输入数据的结构“Input”。在我的主脚本中运行脚本将生成所有准备好使用的参数 VBA中是否有类似的功能?我看过类函数和在子例程之外声明变量,但看起来不是最好的解决

目前,我正在从事一个VBA项目,其中包含大量必需的子例程。我想做的是创建一个“输入函数”,其中包含代码的所有基本输入参数

目前,我需要在每个子例程中声明我的变量,这意味着如果其中一个变量发生更改,我需要遍历整个代码来更改它们。拥有一个输入域,就可以只进行一次更改,而不必经过整个模块

在MATLAB中,我将创建一个单独的脚本,即包含所有输入数据的结构“Input”。在我的主脚本中运行脚本将生成所有准备好使用的参数


VBA中是否有类似的功能?我看过类函数和在子例程之外声明变量,但看起来不是最好的解决方案。

虽然全局变量通常不受欢迎,但这似乎是全局变量的最佳位置

一般来说,避免GV是因为GV对性能的影响、它们与具有类似名称的局部变量混淆的可能性,以及使用它们而不是花时间在整个过程和子过程中设置适当变量的感觉过于草率。。。但是,如果这些潜在的负面因素不是宏将要执行的操作的重要因素,并且/或者在代码中得到补偿/缓解,那么就没有理由不使用它们

我的2美分-如果使用GVs的好处超过了它们在您特定情况下的缺点,那么就使用它们吧

希望这有帮助,
silkcode

您为什么要拒绝OO解决方案?我想不出比类更好的保存状态的方法了。您可以在VBA中使用自定义的
类型
(类似于结构)。虽然全局变量通常被认为是糟糕的设计,但它们的使用是有效的。也许这就是其中之一。如果您谈论的是全局参数(似乎是),为什么不将它们声明为全局(公共)变量?