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

在Excel里如何用VBA实现向任意一个单元格输入内容,再进行任意操作后,再向同一单元格输入内容,会用诸如“/”的符号隔开会自动用诸如“/”的符号隔开不同次输入的内容?... 在Excel里如何用VBA实现向任意一个单元格输入内容,再进行任意操作后,再向同一单元格输入内容,会用诸如“/”的符号隔开
会自动用诸如“/”的符号隔开不同次输入的内容?
展开
 我来答
万年金刚钻
推荐于2016-08-06 · TA获得超过1.6万个赞
知道大有可为答主
回答量:1.1万
采纳率:0%
帮助的人:3420万
展开全部

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

当你原来的数据是“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

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

更多追问追答
追问
对的,你真厉害,这就是我想要达到的效果,另外再麻烦问下,如果我想选中单元格,然后再按键盘上的退格键的时候,能否用退格键+数字形成的快捷键删除指定次数输入的内容
追答

不知道你准备怎么操作呢?退格键{BackSpace}是没有办法和数字键形成组合键的,所以{退格键+数字}实际上形成了两次输入。

第一次,backspace会进入单元格编辑状态,并清除活动单元格的内容;

接着

第二次,数字键会进入单元格并保持编辑状态

编辑状态,Excel只能响应很少的事件

建议,使用其他组合键来完成这个需求。例子是使用{Alt+数字键}来模拟这个需求的。由于无法知道单元格中"////"会是第几次输入的(因为可能中间曾经被删除过),所以认定数字键是删除目前第几个“/”前的信息,

比如对于“x/y/z/a/b/c”的单元格,Alt+4就是删除“a”,VBA运行后,单元格变为“x/y/z/b/c”


代码被字数限制了,发不上来,自己看附件吧

Sheet1代码:


增加一个模块,模块代码:


附件可参考

kisushitai
2014-07-30 · TA获得超过217个赞
知道小有建树答主
回答量:112
采纳率:0%
帮助的人:97.4万
展开全部
A1=155 557 就 按时 685(任意文本+数值都可)
输入公式B1=SUBSTITUTE(A1, " ", "/")
往下拖动。

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

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

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

或者你还想要其他效果?
追问
不是呢,比如单元格输入了12,第二次输1时,在同一单元格就会12/1自动替换原来的12,是想达到这样的效果,
追答
明白了 不会

如果是把指定数据或满足条件的数据保存到同一个单元格里倒是会的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
georgetalent
2014-07-30 · 知道合伙人旅游行家
georgetalent
知道合伙人旅游行家
采纳数:242 获赞数:1046
毕业于北京装甲兵工程学院计算机系指挥自动化专业,现任沈阳市旅游局区域合作处职员

向TA提问 私信TA
展开全部

在要实现功能的表格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

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

追问
对的,你真厉害,这就是我想要达到的效果,另外再麻烦问下,如果我想选中单元格,然后再按键盘上的退格键的时候,能否用退格键+数字形成的快捷键删除指定次数输入的内容
追答
这个很难吧,先不说如何实现,你按了退格键就会删除一部分东西了,如果再按数字就算达成目标那怎么控制指定次数呢?
来自:求助得到的回答
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-07-30
展开全部
比如 你想想A1 单元格 输入 某个内容 那么 你可以 ……不知道 你想怎样 输入……
不过 你每次 向 A1 赋值的时候 可以这样……
Range("A1")=Range("A1") &"/"& X

X 是你每次要输入的内容……
追问
单击一个已经有内容的单元格再次输入内容时,会用新的内容替换掉原有内容,我不要这样,我要的是原有内容/新的内容替换掉原有内容,要怎样用VBA实现呢?
追答

朋友!你再看看 ……难道这个不是 你要求的VBA 代码吗? 我的老天啊……I‘ll………………!!!!

Oh My…… 我似乎明白你的意思了……

回头再回答 暂时有事儿……


看看附件……

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
可爱就是笑
2014-07-30 · TA获得超过1599个赞
知道大有可为答主
回答量:4011
采纳率:70%
帮助的人:608万
展开全部
输入内容与任意操作都是VBA做的话,是可行的
更多追问追答
追问
愿闻其详
追答
帖主可能对于变量与赋值了解不深吧

比如
[A1]="QQ"
[A1]=[A1] & "57132899"

最终A1结果是什么呢?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式