永发信息网

怎么样实现excel中输入一个数字,自动变成某个公式的值

答案:6  悬赏:10  手机版
解决时间 2021-11-15 21:54
  • 提问者网友:那叫心脏的地方装的都是你
  • 2021-11-15 13:35
怎么样实现excel中输入一个数字,自动变成某个公式的值
最佳答案
  • 五星知识达人网友:酒醒三更
  • 2021-11-15 15:04
公式做不到,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
全部回答
  • 1楼网友:傲气稳了全场
  • 2021-11-15 18:15
多起一列又何妨呢?你搞完后可以把不想看到的列隐藏起来嘛!
  • 2楼网友:思契十里
  • 2021-11-15 17:50
在A1单元格里面输入自变量,就是你需要输入的2、7这些个,在B1单元格里面写“=A1*5+2”,回车就出结果了。
  • 3楼网友:千杯敬自由
  • 2021-11-15 17:33
简单:你把A改为单元格A1就以了.使用时,A1输入你要的数字就行.
当然A1也可以改为其它单元格地址.
  • 4楼网友:往事埋风中
  • 2021-11-15 16:27
"不要另外起一列,就只要一列,没有什么A1单元格B1单元格,就一列单元格。"

楼主,把你的方法也教教我哈,谢谢!
  • 5楼网友:煞尾
  • 2021-11-15 16:13
用宏:

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"

在这个时候,就是用粘贴/下拉方法改变多个单元格,也可以把你定义的范围,按要求的公式改动。
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯