以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 数字转字符串问题(已解决) (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=27467) |
||||
-- 作者:zpx_2012 -- 发布时间:2013/1/2 9:49:00 -- 数字转字符串问题(已解决) 各位老师,
想在单元格中设置编号的顺序号,在单元格中输入4,输入后自动转换为“0000”,如果是3则自动转换为“000” 以此类推,输入任何一个数字都可以转换为数字所代表的“0”的个数,代码要怎么写?
谢谢! [此贴子已经被作者于2013-1-2 15:54:52编辑过]
|
||||
-- 作者:程兴刚 -- 发布时间:2013/1/2 9:57:00 -- AfterOpenProject事件代码:
DataTables ("**表").DataCols("编号").SetFormat("000") |
||||
-- 作者:程兴刚 -- 发布时间:2013/1/2 9:57:00 -- 列属性也可以设置! |
||||
-- 作者:zpx_2012 -- 发布时间:2013/1/2 10:45:00 -- 谢谢程版,但不是整列的如下图
当左边是“日期格式”时,第二列就是下拉列表 只有当第一列是“顺序号位数”时第二列中输入的数字才要自动转换为“0000”的样式,数字是任意的,不固定的。
|
||||
-- 作者:zpx_2012 -- 发布时间:2013/1/2 13:34:00 -- 用了如如下代码可以了,但如果单元格内输入非数字的内容就会出错,如何才能避免这个错误?要是能动态设置单元格的数据类型就好了。但我不知道请教大家了。
If e.Col.Name = "值" And e.Row("类型") = "顺序号位数" Then [此贴子已经被作者于2013-1-2 13:35:37编辑过]
|
||||
-- 作者:程兴刚 -- 发布时间:2013/1/2 14:45:00 -- 表属性,DataColChanged事件代码:
If e.DataCol.name = "第二列" |
||||
-- 作者:czy -- 发布时间:2013/1/2 15:01:00 -- If e.DataCol.name = "第二列" If e.DataRow("第一列") = "顺序号位数" If e.DataRow.Isnull("第二列") = False If IsNumeric(e.DataRow("第二列")) If e.DataRow("第二列") <> 0 e.DataRow("第二列") = Format(e.DataRow("第二列"),"0".PadLeft(e.DataRow("第二列"),"0")) End If End If End If End If End If |
||||
-- 作者:zpx_2012 -- 发布时间:2013/1/2 15:08:00 -- 谢谢程版,但第二列是字符型,通用的,即不同的表用的结构不一样,其他都解决了,只是当左边类型为“顺序号位数”时如何限制值这个单元格只能输入0—9的数字就行,如果左边类型是字符串,那就限制不能输入数字,这样的功能要如何实现?
谢谢!
此主题相关图片如下:示例.gif [此贴子已经被作者于2013-1-2 15:23:03编辑过]
|
||||
-- 作者:blackzhu -- 发布时间:2013/1/2 15:50:00 -- 那你判断下输入的是不是数值型 不就行了. |
||||
-- 作者:zpx_2012 -- 发布时间:2013/1/2 15:54:00 -- 对啊,怎么没想到,解决了。谢谢blackzhu,程版及CZY! |