2

我有一个电子表格,用户在输入页面上输入各种详细信息,然后按下计算按钮以获得他们想要的内容。输入是字符串、数字和日期。

我想为用户保存每个计算的输入,以便以后他们可以输入 calc id 而不必租用输入。

我想到的一种简单方法是在计算运行时将输入复制到另一张表,其中输入在具有 calc id 的列中。然后只需将未来的输入保存在单独的列中并查找正确的列以在以后检索输入。

我读了这个问题 -在 VBA 中使用类有什么好处?并认为创建一个名为 CalculationInputs 的类将所有详细信息存储在一个对象中会很好。对于我需要的东西,这可能有点过头了,但我想问问其他人将如何解决这个简单的任务。

4

1 回答 1

2

您可以使用Names在工作簿或工作表范围内定义变量。通常这些用于定义范围,更具体地说是动态范围,但它们也可用于存储静态/常量值。

Name手动创建一个,从公式功能区,名称管理器:

在此处输入图像描述

单击“新建”按钮,然后给它一个有意义的名称:

在此处输入图像描述

确保=""输入“引用到”字段,如果将其留空,则不会创建名称。

然后,当您按 OK 或任何时候转到名称管理器时,您将看到Names工作簿中所有可用的列表。

在此处输入图像描述

您可以通过管理器编辑这些Names,这可能很乏味,或者您可以轻松地使用 VBA 和输入来控制它们,例如:

Sub Test()
    ActiveWorkbook.Names("MyAddress").RefersTo = "734 Evergreen Terrace"
End Sub

您可以执行类似的操作来捕获值,我们使用其他宏或用户公司代码将值分配给Name.

Activeworkbook.Names("MyAddress").RefersTo = _
    Application.Inputbox("please enter your address")

等等。

如果您运行它,然后查看名称管理器,您会看到值已更新:

在此处输入图像描述

在 VBE 中,您可以引用如下名称:

Debug.Print ActiveWorkbook.Names("MyAddress").Value '# Prints in the immediate pane
Range("A1") = ActiveWorkbook.Names("MyAddress").Value  

这些也可以从工作表中访问(读取),例如:

在此处输入图像描述

于 2013-10-07T00:53:47.440 回答