以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- [求助]求助 这段代码的优化写法!! (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=19698) |
-- 作者:gaoyong30000 -- 发布时间:2012/5/18 12:46:00 -- [求助]求助 这段代码的优化写法!! Dim cnt As Integer
之前想这样写的 但是出错
最原始的代码 判断太累了
Dim cnt As Integer [此贴子已经被作者于2012-5-18 12:55:49编辑过]
|
-- 作者:FoxMan -- 发布时间:2012/5/18 13:13:00 -- Dim s1,s2,s3 As String s1 = "详|调|合|离|员|离职时间|备注|系统密码|系统开启" s1+ = "|系统在线与否|空白单元格|信息完整率" s2 = "Count([_identify])" For Each cl As DataCol In dt.datacols If s1.Contains(cl.name) = False Then s3 = cl.Name & " Is not NULL" cnt+ = dt.Compute(s2, s3)
End If Next [此贴子已经被作者于2012-5-18 13:18:02编辑过]
|
-- 作者:gaoyong30000 -- 发布时间:2012/5/18 13:24:00 -- s1+??? cnt+ ??? 什么原理? |
-- 作者:FoxMan -- 发布时间:2012/5/18 13:27:00 -- 疊加 |
-- 作者:gaoyong30000 -- 发布时间:2012/5/18 13:28:00 -- foxman 还有一点
s1.Contains 直接包含的话 例如:我上面的 |离| 如果去掉后 再判断 是否包含离 还是为true 因为 我还有个 |离职时间| 也包含离
最好是分开 然后contains
请问该怎么优化下? |
-- 作者:gaoyong30000 -- 发布时间:2012/5/18 13:36:00 -- Dim cnt As Integer
借鉴了foxman一下 集合里有contains方法~ 各位看看还能否再优化! |
-- 作者:FoxMan -- 发布时间:2012/5/18 13:36:00 -- Dim s1,s2,s3 As String s1 = "|详|调|合|离|员|离职时间|备注|系统密码|系统开启" s1+ = "|系统在线与否|空白单元格|信息完整率|" s2 = "Count([_identify])" For Each cl As DataCol In dt.datacols If s1.Contains("|" & cl.name & "|") = False Then s3 = cl.Name & " Is not NULL" cnt+ = dt.Compute(s2, s3)
End If Next |
-- 作者:gaoyong30000 -- 发布时间:2012/5/18 13:40:00 -- 多谢 呵呵~!~~~~~~~ 学到了不少 |
-- 作者:blackzhu -- 发布时间:2012/5/18 13:48:00 -- 呵呵,代码无所不能. |