以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  数字编辑  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=127467)

--  作者:chaomoshou
--  发布时间:2018/11/14 21:08:00
--  数字编辑
对已有数字列单元格中的数字加入小数点会有BUG,例如:先输入101010,然后加入小数点希望变更为10.1010,结果却是101.010
--  作者:有点甜
--  发布时间:2018/11/14 22:10:00
--  

 

确实是有问题,因为最后一个数值是0,就会出现这种问题。

 

keyUpEdit事件编写代码处理一下,如

 

If e.Col.name = "第二列" Then
    If e.keycode = 190 Then
        If e.text.EndsWith("0") Then
            Dim len = e.text.replace(".", "").length-e.text.replace(".", "").trim("0").length
            e.Table.FinishEditing
            e.Row(e.Col.name) = e.text / 10^len
            e.Table.StartEditing
        End If
    End If
End If

 

 


--  作者:chaomoshou
--  发布时间:2018/11/14 22:52:00
--  
试过了,并没有解决问题。
--  作者:有点甜
--  发布时间:2018/11/14 22:54:00
--  
以下是引用chaomoshou在2018/11/14 22:52:00的发言:
试过了,并没有解决问题。

 

我测试没问题。贴出你写的代码。或者做个实例发上来测试。


--  作者:chaomoshou
--  发布时间:2018/11/14 23:24:00
--  

测试后发现:

1、编辑后加入的小数点经常处于无法删除的状态。

2、如果小数点加在最后一个0前面就会出错。例如:数字101010,然后加入小数点希望变更为10101.0,结果却是101010

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.rar


--  作者:有点甜
--  发布时间:2018/11/15 9:19:00
--  
If e.Col.name = "第二列" Then
    If e.keycode = 190 Then
        If e.text.EndsWith("0") OrElse e.text.EndsWith(".") Then
            Dim len = e.text.replace(".", "").length-e.text.replace(".", "").trim("0").length
            \'msgbox(len)
            e.Table.FinishEditing
            e.Row(e.Col.name) = e.text / 10^len
            e.Table.StartEditing
        End If
    End If
End If