为 Excel VBA 创建常量库的理想方法是什么?

问题描述

我希望创建一组用于结构计算的函数。这个想法是有一个模块或类似的模块,我可以导入到 Excel 工作簿中,然后开始使用 VBA 中的函数来满足我的需要。

我最初需要做的是用数据常量定义一些标准变量。例如管道数据的集合:商品名称、内径、外径、每米重量等。它是一个常量库:工业管道都是一样的,并且不会随着时间的推移而真正改变。

在 VBA 中执行此操作的最佳方法是什么?最初我认为一个普通的旧公共数组或字典可能会做到这一点。有了字典,我可以做一些事情:

pipe_diameter = pipes("HSS100x100x3")

但是有初始化的问题。我会将我的管道数据放在代码中,在模块内,但我必须记住在每段代码的开头调用 init_pipes sub,以便将数据加载到数组中并使其可用。>

另外,我想我必须为每个管道参数编写一个字典:pipes_diameter、pipes_unitweight、pipes_sectionarea 等。编写代码听起来不是很有趣。

所以向上移动,我想我可以制作一个管道课程。然后执行以下操作:

Dim pipedata as pipes
pipe_diameter = pipes.innerdiam("HSS100x100x3")

并且所有相关数据都将存储在类模块中。加载模块,创建您的对象,然后您就可以获得可用的数据。我不得不考虑如何组织该类以使其能够实际检索和更新数据,但到目前为止,它看起来是最有希望的选择。

我是对的,还是有更简单的方法可以做到这一点,而不涉及 VBA 中的自定义类?

解决方法

共享库工作簿的最佳方式是称为“个人工作簿”的 Excel 内置函数。这是存储在 XLSTART 文件夹中的工作簿。

有一个机器级别的 XLSTART 文件夹可以为任何用户打开,这需要管理员来安装工作簿。对于普通用户,您可以将工作簿共享到其他用户的个人工作簿区域。

模式是这样的:

C:\Users\$USERNAME\AppData\Local\Microsoft\Excel\XLStart

既然您知道如何共享将在 Excel 启动时自动打开的个人工作簿,您就可以设计您的解决方案了。

我建议将管道数据放入工作簿中工作表中的表格中。然后,您可以将数据提取到您将向用户公开的任何 VBA 函数中。

这样,一旦代码稳定了,就可以在不修改代码的情况下更改sheet中的底层数据。始终建议将您的数据和代码分开。

字典只适用于键/值对。您想为管道创建自定义类对象,该管道具有您需要从电子表格填写的所有字段。然后,您可以动态地将工作表中的数据拉入管道对象集合中。

Official Documentation

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...