在SpreadSheet载入的模板文件中设置有单元格的算式。
因为数据绑定时候自动将多余的行清空了,所以目前的保存方式是将模板的每个单元格的Formula都保存起来,
然后在数据绑定后,增加行,并且将保存的Formula复原。
现在出现的问题是,复原后的Formula不能自动根据当前行改变。
例如: 复制时候是Formula = "A41 + C41"
复原后,RecalculateAll执行后,依旧是Formula = "A41 + C41"
请问这个该如何处理?
- ' 数据绑定前,保存模板的单元格算式
- with fpsp1
- Dim fpFormulas As New Generic.List(Of Generic.List(Of String))
- for i as integer = 0 to 3
- Dim fpFormula As New Generic.List(Of String)
- For j As Integer = 0 To 30
- fpFormula.Add(.ActiveSheet.GetFormula(i, j))
- next
- fpFormulas.Add(fpFormula)
- next
- ’-------------------数据绑定开始--------------------------
- ...
- ’-------------------数据绑定结束--------------------------
- ' 数据绑定后,重新将模板的算式复原
- .ActiveSheet.AddUnboundRows(0, 4) '新增与数据不绑定的行, 模板数据保存
- for i as integer = 0 to 3
- For j As Integer = 0 To 30
- With .ActiveSheet.Cells(i, j)
- .Formula = fpFormulas(i).Item(j)
- end with
- next
- next
- .ActiveSheet.RecalculateAll() ' 设置结束后,重新计算单元格内的算式
- end with
复制代码 |
|