在Excel里如何用VBA实现向任意一个单元格输入内容,再进行任意操作后,再向同一单元格输入内容,会隔开

2024-11-03 18:08:10
推荐回答(5个)
回答(1):

代码不难。但是,有一个问题需要你考虑:

当你原来的数据是“XYZ”,在你选中这个单元格,然后又输入”XYZ“时,你怎么判断

这是【再次输入”XYZ“从而得到”XYZ/XYZ“】;

还是单元格没有变化依然是原本的【“XYZ”】?

下面这段代码是为你的设想制作的。

Public oldValue As Variant
Private Sub Worksheet_Change(ByVal Target As Range)
If Target(1) = "" Or oldValue = "" Then Exit Sub
Application.EnableEvents = False
Target(1) = oldValue & "/" & Target(1)
Application.EnableEvents = True
End Sub
Private Sub Worksheet_SelectionChange(ByVal Target As Range)
oldValue = Target(1)
End Sub

保留了清除单元格的选择。。不过没有对作用区域做设定

回答(2):

A1=155 557 就 按时 685(任意文本+数值都可)
输入公式B1=SUBSTITUTE(A1, " ", "/")
往下拖动。

公式意思就是表格内单元格里的一个空格置换成/ 。

如何怕错误,你可以改成置换两个空格。

你每次在输入数据前按一下空格(或2个空格),B列自动编程155/557/就/按时/685

或者你还想要其他效果?

回答(3):

在要实现功能的表格vba编辑器里输入代码:

Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
If Target.Value <> "" And Right(Target, 1) <> "/" Then
Target.Value = Target.Value & "/"
End If
End Sub

你试试,看看是不是你要的效果。

回答(4):

比如 你想想A1 单元格 输入 某个内容 那么 你可以 ……不知道 你想怎样 输入……
不过 你每次 向 A1 赋值的时候 可以这样……
Range("A1")=Range("A1") &"/"& X

X 是你每次要输入的内容……

回答(5):

输入内容与任意操作都是VBA做的话,是可行的