用宏:
Private Sub Worksheet_Change(ByVal Target As Range)
Change_Range = "$A:$A"
If Intersect(Target, Range(Change_Range)) Is Nothing Then Exit Sub
Application.EnableEvents = False
For Each c In Intersect(Target, Range(Change_Range))
If IsNumeric(c) Then c.Value = c * 5 + 2
Next c
Application.EnableEvents = True
End Sub
把你想要进行此操作的单元格范围放在:
Change_Range = "$A:$A"
如:
Change_Range = "$A$1"
或:Change_Range = "$A$1:$B$2"
或:Change_Range = "$A$1,$B$2"
或:Change_Range = "$A$1,$B$2,$C$3"
或:Change_Range = "$A:$A,$B$2,$C$3"
在这个时候,就是用粘贴/下拉方法改变多个单元格,也可以把你定义的范围,按要求的公式改动。
公式做不到,vba实现如下,不过局限性比较多,用公式加辅助列实现比较好
A列输入加计算
Private Sub Worksheet_Change(ByVal Target As Range)
Application.EnableEvents = False
If Target.Count = 1 Then
If Mid(Target.Address, 2, 1) = "A" And Target.Value <> "" Then
Range(Target.Address) = Target.Value * 5 + 2
End If
End If
Application.EnableEvents = True
End Sub
在A1单元格里面输入自变量,就是你需要输入的2、7这些个,在B1单元格里面写“=A1*5+2”,回车就出结果了。
简单:你把A改为单元格A1就以了.使用时,A1输入你要的数字就行.
当然A1也可以改为其它单元格地址.
"不要另外起一列,就只要一列,没有什么A1单元格B1单元格,就一列单元格。"
楼主,把你的方法也教教我哈,谢谢!