EXCEL自动计算

来源:百度知道 编辑:UC知道 时间:2024/05/29 13:19:59
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
On Error Resume Next
If Target.Column = 4 And Target.Offset(, -1) <> "" Then
Target.Value = [$a$2] / [$b$2] * Target.Offset(, -1)
End If
End Sub
能不能将上面的语名改进一下,只要C列的行有数据,D列对应的行就自动计算.

最好换一个事件,代码如下:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error Resume Next
If Target.Column = 3 And Target <> "" Then
Target.Offset(, 1).Value = [$a$2] / [$b$2] * Target
End If
End Sub

由于使用了Target,所以必须选中单元格后才会计算出结果。
按你的实际情况,其实大可不必改代码,打开工具-选项-编辑,设置按Enter键光标方向“向右”即可。

Private Sub Worksheet_Change(ByVal my As Range)
On Error Resume Next
If my.Column <> 3 Then Exit Sub
For Each rng In Range([c1], [c65536].End(xlUp))
If rng <> "" Then rng(1, 2) = [$a$2] / [$b$2] * rng
Next
End Sub

这是macro?
如果使用excel可以record不是么?
连vba 都不用碰~~
多美妙阿~~