博客首页
  • 用户名
  • 密码
  • 验证码
  • 网校首页
  • 博客首页
  • 论坛首页
君临天下
吾将上下而求索
个人资料
2009年07月04日 12:57

Excel表的输入涉及到很多时间时,总是换过来输冒号很麻烦,还容易中英文标点出错。能不能在Excel表中固定一个冒号,这样在输入时间时会比较方便。例如,输入12:00时,可以直接输入1200而不必再去输入那个冒号了?

解决方法:

【方法一】(不具排错能力,简单方便)
选择那一列,单元格自定义格式里 使用##":"##,然后输入1245,就显示12:45

【方法二】(有排错能力)
使用#00":"0#,然后选择数据有效性,条件选择整数,介于0-2359之间

【方法三】(有排错能力)
一、 启动Excel,打开您需要大量输入时间值的那个工作簿,然后按Alt-F11,启动VBA编辑器。
二、 选择菜单中“插入”──“添加模块”命令。这时,在屏幕左上方“工程”窗口中,会出现一个“模块”的子目录,在它的右侧,显示着刚刚添加进来的模块“Module1”,您可以将它改名为您所喜欢的名字如“fasttime”。

【请注意!!】下面的代码,出现“fasttime”的地方,应该改为你自己模块的名称!
三、 双击模块“fasttime”(如果修改过模块名称的话),在右侧的代码编辑器中输入以下代码

Option Explicit
Sub Auto_Open()
Application.OnEntry = "Fast" ’’每当工作表内容发生变化时就运行指定过程
End Sub

Sub Fast()
On Error GoTo EnterError ’’如果有错误就跳往EnterTimeError语句
If Intersect(Application.Caller, Range("fasttime")) Is Nothing Then
Exit Sub ’’如果是非"fasttime"区域的单元格被改变,则结束过程
End If
’’如果输入值小于1或者大于2400,则显示对话框用户输入值非法
If Application.Caller < 1 Or Application.Caller > 2400 Then
MsgBox "对不起,您的输入值非法!", vbExclamation
Application.Caller.Value = ""
Exit Sub
End If
’’ 将输入值改成 HH:MM格式
Application.Caller.Value = Format(Application.Caller, "00:00")
Exit Sub
EnterError:
Exit Sub
End Sub

四、把您将要大量输入时间值的单元格区域命名为“fasttime”。

日志分类:默认分类 | 阅读(1128) | 收藏(0) | 评论(1) | 打印

 评论读取中...
  • 发评论 (限500字以内)
  • 昵称:
  • 验证码:
  •  



以上网友发言只代表其个人观点,不代表中华会计网校博客的观点或立场。
array(2) { ["submit"]=> string(0) "" ["s"]=> string(0) "" } here