声明一个variables在Excel中使用,但在外部定义它

我在一个工作簿中有几个excel函数重复使用一个值。 我经常需要改变这个值,所以我打算用一个variables来replace那个值的所有实例:MyVal,这样我下次可以改变MyVal的值,而不必去遍历所有的值。 我知道我可以通过命名具有该值的单元格来完成此操作,从而创build各种types的variables。

但是,我想让别人能够改变MyVal的价值, 而不必让他们访问Excel工作表。 有没有什么办法可以在外部文件中定义MyVal? (我希望能在.properties文件中完成,因为这是一个更大的Java项目的一部分)。 到目前为止,我发现的所有解决scheme都只是在表单中定义variables。

您不能在单元格公式中引用存储在外部的值(在任何有意义的意义上)。 但是…您可以从文本文件中selectworkbook_open事件中的值,然后将单元格设置为您find的值。

这看起来像这样:

  1. 创build一个ini类似的文件,保存值将被用户更新

    C:\ my.ini的:

    someVar=10
    myValue=9.82
    someothervar=pete

  2. 在你locking的Excel表格中,你的公式可以引用一些命名的范围(我们称它为myValue,它将引用Sheet1!A1)。

  3. 您可以创build一个VBA子例程,它将在Workbook Open上运行以获取存储在您的ini文件中的值并填充Sheet!A1单元格(或引用指定范围)的值,以便公式的引用命名范围“myValue”将具有新值。

第3步看起来像

 Private Sub Workbook_Open() Dim fileName As String Dim textRow As String Dim fileNo As Integer Dim param As String fileName = "C:\my.ini" fileNo = FreeFile 'Get first free file number Open fileName For Input As #fileNo Do While Not EOF(fileNo) Line Input #fileNo, textRow 'Check to see if it's the value we are looking for 'assuming it's in the file as 'myValue=9.82 param = Split(textRow, "=")(0) myValue = Split(textRow, "=")(1) If param = "myValue" Then Range("myValue").Value2 = myValue End If Loop Close #fileNo End Sub 

该子程序必须进入工作簿的代码页(双击VBA项目窗格中的“ThisWorkbook”)

另外,也许有一些Java库可以popup打开工作簿,并更新单元格中的值,只是做所有的代码(不知道这将是多么可行)。