以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于全角半角数字输入的问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75691)

--  作者:fytea
--  发布时间:2015/10/12 22:09:00
--  关于全角半角数字输入的问题
能否做到在一单元格中,遇到输入数字,就自动切换到全角数字
--  作者:大红袍
--  发布时间:2015/10/12 22:17:00
--  

 DataColChanging事件

 

Dim str As String = ""
For Each s As String In e.NewValue
    If cstr(val(s)) = s Then
        str &= StrToWide(s)
    Else
        str &= s
    End If
Next
e.NewValue = str


--  作者:fytea
--  发布时间:2015/10/12 23:59:00
--  

大红袍,你真神了,哪路神仙,有问必答,还见奇效

不是所有单元格都这样

[此贴子已经被作者于2015/10/12 23:59:32编辑过]

--  作者:大红袍
--  发布时间:2015/10/13 9:12:00
--  

那就加上列名的判断。

 

Select Case e.DataCol.Name
    Case "第一列", "第二列"
        Dim str As String = ""
        For Each s As String In e.NewValue
            If cstr(val(s)) = s Then
                str &= StrToWide(s)
            Else
                str &= s
            End If
        Next
        e.NewValue = str
End Select

 


--  作者:fytea
--  发布时间:2015/10/13 12:00:00
--  
老大,其中还含有字母,也转成全角
--  作者:大红袍
--  发布时间:2015/10/13 12:03:00
--  
Select Case e.DataCol.Name
    Case "第一列", "第二列"
        Dim str As String = ""
        For Each s As String In e.NewValue
            Dim reg As new System.Text.RegularExpressions.Regex("[0-9a-zA-Z]")
            If reg.IsMatch(s) Then
                str &= StrToWide(s)
            Else
                str &= s
            End If
        Next
        e.NewValue = str
End Select