EXCEL如何用VBA实现公式

EXCEL如何用VBA实现:因为不想公开公式,又不想用保护单元格方式隐藏公式,想到用VBA加密方式,但我的VBA水平有限,请帮忙解决,
第一行为表头,B列为输入数据,C列中C2输入第一个数据数,当B列有数据时,对应的C2以下如则用公式计算,C3=B3/5+C2,C4=B4/5+C3...C100=B100/5+C99...C150=B150/5+C149.....

Private Sub Worksheet_Change(ByVal Target As Range)
Dim i As Integer
On Error Resume Next
If Target.Column = 2 And Target.Count = 1 And Target <> "" Then
For i = 3 To 200 '200这个数根据你的范围自己调整,即当你B列(B2以后)任意一个数据有改动,列C中第3——第200行的数据均会重新计算一次。

Cells(i, 3) = Cells(i, 2).Value / 5 + Cells(i - 1, 3).Value
Next
End If
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2013-03-21
说得不是很清楚。如果B4有数据了。C3没有数据呢?你是要B列输入数据,C列自动出结果?
大概写了下,你看看你自己能不能改吧,不能再说。

Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 2 And Trim(Target.Value) <> "" And Target.Offset(-1, 1) <> "" Then
Application.EnableEvents = False
Range("C" & Target.Row).Value = Target.Value / 5 + Target.Offset(-1, 1)
Application.EnableEvents = True
End If
End Sub
第2个回答  2013-03-22
VBA不是很精通耶