存储用户input以供稍后检索

我有一个电子表格,用户在input页面上input各种细节,然后按下一个计算button来获得他们想要的。 input是string,数字和date。

我想为用户保存每次计算的input,以便日后可以inputcalc id,而不必inputinput。

一个简单的方法,我想这样做是复制input时,计算运行到另一个工作表中的input与钙的列列中的input。 然后,将未来的input保存在一个单独的列中,并查找正确的列以在稍后的date检索input。

我读过这个问题 – 在VBA中使用类有什么好处? 并认为可以创build一个名为CalculationInputs的类,将所有细节存储在一个对象中。 这可能是我所需要的矫枉过正,但我​​想问问别人如何解决这个简单的任务。

您可以使用Names来定义工作簿或工作表范围内的variables。 通常用于定义范围,更具体地说是dynamic范围,但也可以用来存储静态/常量值。

要手动创buildName ,请从公式function区名称pipe理器中:

在这里输入图像描述

点击“新build”button,然后给它一个有意义的名字:

在这里输入图像说明

确保在“引用到”字段中input="" ,如果保留空白,名称将不会被创build。

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

在这里输入图像描述

您可以通过Namespipe理器进行编辑,这可能很乏味,或者您可以使用VBA和input来控制它们,例如:

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

你可以做这样的事情来获取价值,我们可以使用其他macros或用户公司代码来给Name分配值。

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

等等。

如果你运行这个,然后检查名称pipe理器,你会看到值已经更新:

在这里输入图像说明

在VBE中,你可以引用这样的名字:

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

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

在这里输入图像说明