Foxtable(狐表)用户栏目专家坐堂 → 数字编辑


  共有2293人关注过本帖树形打印复制链接

主题:数字编辑

帅哥哟,离线,有人找我吗?
chaomoshou
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:77 积分:1185 威望:0 精华:0 注册:2017/3/27 20:43:00
数字编辑  发帖心情 Post By:2018/11/14 21:08:00 [只看该作者]

对已有数字列单元格中的数字加入小数点会有BUG,例如:先输入101010,然后加入小数点希望变更为10.1010,结果却是101.010

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:77 积分:1185 威望:0 精华:0 注册:2017/3/27 20:43:00
  发帖心情 Post By:2018/11/14 22:52:00 [只看该作者]

试过了,并没有解决问题。

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/11/14 22:54:00 [只看该作者]

以下是引用chaomoshou在2018/11/14 22:52:00的发言:
试过了,并没有解决问题。

 

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


 回到顶部
帅哥哟,离线,有人找我吗?
chaomoshou
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:77 积分:1185 威望:0 精华:0 注册:2017/3/27 20:43:00
  发帖心情 Post By:2018/11/14 23:24:00 [只看该作者]

测试后发现:

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

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

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


 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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

 回到顶部