我正在使用宏来生成报告。我从结构中获取信息,并使用公式计算填充工作表中单元格的各种数字。这些工作表也是在宏中创建的。当用户单击单元格时,我必须做些什么来确保计算我在单元格中填充的数字的公式保留在单元格中?即用户可以决定在生成报告后更改单元格的公式。
这是我在函数中创建新单元格的方法createTS()
:
Function createTS(ByRef index As Integer, ByRef wBStruct As wBStruct, ByRef gcBStruct As gcBStruct) As Worksheet
'1) set up worksheet
Set createTS = ThisWorkbook.Worksheets.Add(, ActiveSheet, 1, xlWorksheet)
With createTS
ThisWorkbook.VBProject.VBComponents(.CodeName).Name = cnDic(index)
.Name = wBStruct.wTumorCellLine & "_" & wBStruct.wTypeBlock(index).projNum & "(" & gcBStruct.typeName & ")"
End With
'...lots of code...
'this is where I populate the cells in the worksheet'
'...lots of code...
End Function
在函数中,我可能会将结构中的信息复制到某些单元格中(这些单元格不包含公式,但是是我计算其他单元格中值的原始数字。换句话说,其他单元格中的公式只会是引用其他单元格,而不是在宏中创建的结构)。关键是如果我能让公式留在单元格中,它们只能引用其他单元格吗?(我最初的信念)
一个示例单元格可能如下所示:
createTS.Cells(10,x).Value = createTS.Cells(1,5).Value*100 ' x would be some integer
我在哪里包含代码以确保 ^ 公式保留在其中,cell (10,x)
以便用户以后可以根据需要更改公式?
根据我想要做的,有没有更好的方法来做到这一点?
附带说明一下,假设我的假设是正确的,只用公式引用其他单元格,那么公式是否可以包含引用非单元格的变量,比如一个常数(x = 5.3445435
我宁愿使用 x 而不是5.3445435
一遍又一遍地使用)?可以说变量是另一个单元格吗?有哪些可能性?
请注意,宏将在生成报告后关闭。
谢谢!