如何用VBA在EXCEL中实现自动输入*号变×号

来源:百度知道 编辑:UC知道 时间:2024/05/01 16:35:56
有什么代码可以实现在单元格中输入*号自动显示成×号啊,但是还可以用来计算结果啊!replace("*","×")具体怎么应用啊?完整的代码,及输在哪里啊?就举个例子吧:我是搞工程造价工作的,我想在A1单元格中显示计算式比如说2×3,然后我想在B1单元格中显示计算结果6!能实现*变成×,然后又能显示结果?谢谢大家,不好意思,昨天我研究了半天终于可以实现了啊,就是用VBA加定义的方式可以实现!具体的方法就是:打开VBA编辑器,在左边双击Sheet1,添加以下方法
Private Sub Worksheet_Change(ByVal Target As Range)
ActiveSheet.Cells(Target.Row, Target.Column) = Replace(Target.Text, "*", "×")
End Sub
你在Sheet1中只要输入*就会自动替换成× 然后在定义里用鼠标, 点选B1
按 插入→名称→定义
现有名称 输入 yaharo
参照到 输入 =EVALUATE(SUBSTITUTE(A1,"x","*"))
确定
然后在 B1 输入 =yaharo
将B1 下拉
你们两个都有功劳我不知道该把分数给谁啊?我很难决定啊~~谁能告诉我这个问题的答案啊!

问题不易明白, 唯有假设:
在A列任何一格, 假设是A1, 输入 3×5×4
A1的内容自动变成 =3*5*4
并显示结果是 60
代码:
Private Sub Worksheet_Change(ByVal Target As Range)
On Error GoTo ABC
If Target.Cells.Count > 1 Or Target.Column <> 1 Then Exit Sub
If InStr(Target, "×") = 0 Then Exit Sub
Target.Value = "=" & Replace(Target.Value, "×", "*")
ABC:
End Sub

方法:
右击(该工作表)工作表标签
选 检视程序代码(V)
对话框左上方的下拉 选 Worksheet
右上方的下拉 选 Change
将代码放在:
Private Sub Worksheet_Change(ByVal Target As Range)
[代码放在这里]
End Sub

其实需执行的代码只有一行
Target.Value = "=" & Replace(Target.Value, "×", "*")
其余代码都是用来防错

在A1输入资料 2*3, 然后用VBA将A1的资料(在原格)改变成 2×3
是会做成循环错误, 要有相当高的VBA技巧及经验, 才可以有机会克服, 有很多情况可能会无法解决。
观乎楼主的提问及补充, 应无能力在现阶段应用。
除非你有相当高经验及造诣, 否则不要问在A1输入xx, A1格的内容要自动变成yy 此类问题(自动-取代 除外)。
你只可问 A1输入 xx, B1的内容变成yy

回到你的问题, 请将问题改成 在A1 直接输入 2×