我在一个工作簿中有几个excel函数,它们重复使用一个值。我经常需要更改值,因此我计划用变量:MyVal替换该值的所有实例,以便我可以在下次更改MyVal的值,而不必遍历该值的所有实例。我知道我可以通过使用该值命名一个单元格来创建一个变量。
但是,我希望让其他人能够更改MyVal 的值,而无需授予他们访问Excel工作表的权限。有什么办法可以在外部文件中定义MyVal吗? (我希望在.properties文件中这样做,因为这是一个更大的Java项目的一部分)。到目前为止我找到的所有解决方案都只讨论了在表格中定义变量。
答案 0 :(得分:1)
您不能在单元格公式中引用外部存储的值(在任何有意义的意义上)。但是......您可以从文本文件中选择workbook_open事件的值,然后将单元格设置为您找到的值。
这看起来像是:
创建一个类似ini的文件,该值将由用户
更新C:\的my.ini:
someVar=10
myValue=9.82
someothervar=pete
在锁定的Excel工作表中,您的公式可以引用一些命名范围(我们称之为myValue,它将引用Sheet1!A1)。
步骤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库可以弹出一个工作簿并更新一个单元格中的值,然后在那里完成所有代码(不确定它是多么可行)。