以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  单元格填入数字,自动补全日期  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=106275)

--  作者:szsmall
--  发布时间:2017/9/5 21:19:00
--  单元格填入数字,自动补全日期
单元格默认为日期格式。如我在单元格填2,自动补充为当前日期2017-09-02。如果0705,则自动补全为2017-07-05。而且判断不能超过当前月份的天数,如填入0735,自动清零或提示错误(没哪个月有35天)

以下链接,是控件,单元格好像没办法用
http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=96271&replyID=&skin=1


图片点击可在新窗口打开查看此主题相关图片如下:5.jpg
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:5-1.jpg
图片点击可在新窗口打开查看



[此贴子已经被作者于2017/9/5 21:23:05编辑过]

--  作者:有点蓝
--  发布时间:2017/9/5 21:51:00
--  
KeyDownEdit事件,输入后按回车

If e.Col.Name = "发货日期" AndAlso e.KeyCode = keys.enter
    If e.text.Length <= 2  Then
        If val(e.Text) <= Date.DaysInMonth(Date.today.Year, Date.Today.Month) Then
            e.text= new Date(Date.Today.Year, Date.Today.Month, val(e.text))
        Else
            e.Cancel = True
        End If
    ElseIf e.text.Length = 5
        Dim m As Integer = val(e.Text.SubString(0,2))
        If m >= 1 AndAlso m <= 12 Then
            Dim d As Integer = val(e.Text.SubString(2))
            If d <= Date.DaysInMonth(Date.today.Year, m) AndAlso d > 0 Then
                e.text= new Date(Date.Today.Year, m, d)
            Else
                e.Cancel = True
            End If
        End If
    End If
End If