Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 7258|回复: 7

[已解决]要求单元格的日期时间能换行显示

[复制链接]
发表于 2012-9-3 18:22 | 显示全部楼层 |阅读模式
要求单元格的日期时间能换行显示,不是要按ALT+ENTER来实现的
最佳答案
2012-9-3 19:27
roberth20 发表于 2012-9-3 18:53
感谢您的解答:由于是菜鸟,看不太懂,能否解释下(试了好像没有用)

重新给你添加上了注释

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   With Target   '指定操作的单元格
  3.     If .Count > 1 Then Exit Sub     '如果操作的单元格个数大于1则退出
  4.     If .Address <> "$D$5" Then Exit Sub '如果操作的单元格地址不是 D5 则退出
  5.     Dim S   '声明一个变量
  6.     Application.EnableEvents = False    '关闭事件
  7.     S = Split(.Value)   '按 空格 拆分当前输入的内容
  8.     If UBound(S) > 0 Then .Value = S(0) & vbLf & S(UBound(S))
  9.    
  10.     '拆分后的数组最大下标 大于0 说明输入的数据有空格 ,就需要对数据进行 换行 处理
  11.     '后面的  S(UBound(S)) 主要是防止 日期和时间 中间输入了多个空格后,结果依然能正确
  12.    
  13.     Application.EnableEvents = True     '开启事件
  14.   End With
  15. End Sub

复制代码

日期时间换行显示.rar

4.22 KB, 下载次数: 34

发表于 2012-9-3 18:28 | 显示全部楼层
勾选自动换行,然后拉窄列宽就行了嘛

在不就用代码来输入时间。。。
回复

使用道具 举报

发表于 2012-9-3 18:34 | 显示全部楼层
用代码的话,不知道你是怎么操作的,所以这个仅以 手动输入 日期和时间为例

输入的时间和日期之间至少得有一个空格,
代码示例仅对  D5 单元格有效

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   With Target
  3.     If .Count > 1 Then Exit Sub
  4.     If .Address <> "$D$5" Then Exit Sub
  5.     Dim S
  6.     Application.EnableEvents = False
  7.     S = Split(.Value)
  8.     If UBound(S) > 0 Then .Value = S(0) & vbLf & S(UBound(S))
  9.     Application.EnableEvents = True
  10.   End With
  11. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2012-9-3 18:51 | 显示全部楼层
无聊的疯子 发表于 2012-9-3 18:28
勾选自动换行,然后拉窄列宽就行了嘛

在不就用代码来输入时间。。。

感谢您的解答:自动换行我试过是不行的.
回复

使用道具 举报

 楼主| 发表于 2012-9-3 18:53 | 显示全部楼层
无聊的疯子 发表于 2012-9-3 18:34
用代码的话,不知道你是怎么操作的,所以这个仅以 手动输入 日期和时间为例

输入的时间和日期之间至少得 ...

感谢您的解答:由于是菜鸟,看不太懂,能否解释下(试了好像没有用)
回复

使用道具 举报

发表于 2012-9-3 19:20 | 显示全部楼层
roberth20 发表于 2012-9-3 18:53
感谢您的解答:由于是菜鸟,看不太懂,能否解释下(试了好像没有用)



操作图片
11.gif


附件
日期时间换行显示.rar (7.85 KB, 下载次数: 34)
回复

使用道具 举报

发表于 2012-9-3 19:27 | 显示全部楼层    本楼为最佳答案   
roberth20 发表于 2012-9-3 18:53
感谢您的解答:由于是菜鸟,看不太懂,能否解释下(试了好像没有用)

重新给你添加上了注释

  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2.   With Target   '指定操作的单元格
  3.     If .Count > 1 Then Exit Sub     '如果操作的单元格个数大于1则退出
  4.     If .Address <> "$D$5" Then Exit Sub '如果操作的单元格地址不是 D5 则退出
  5.     Dim S   '声明一个变量
  6.     Application.EnableEvents = False    '关闭事件
  7.     S = Split(.Value)   '按 空格 拆分当前输入的内容
  8.     If UBound(S) > 0 Then .Value = S(0) & vbLf & S(UBound(S))
  9.    
  10.     '拆分后的数组最大下标 大于0 说明输入的数据有空格 ,就需要对数据进行 换行 处理
  11.     '后面的  S(UBound(S)) 主要是防止 日期和时间 中间输入了多个空格后,结果依然能正确
  12.    
  13.     Application.EnableEvents = True     '开启事件
  14.   End With
  15. End Sub

复制代码
回复

使用道具 举报

发表于 2012-9-3 19:52 | 显示全部楼层
本帖最后由 suye1010 于 2012-9-3 19:55 编辑

可以在要换行的地方加入Chr(10)换行符来实现换行。
譬如你要输入的内容是这样的
suye1010
2012-09-03
语句可以这么输入
Msgbox "suye1010"&chr(10)&date
  1. Sub test()
  2. Debug.Print Date & Chr(10) & Time
  3. End Sub
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-2 07:42 , Processed in 0.552229 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表