以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 代码简化思路求助 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=190003) |
|
-- 作者:chen_sheng -- 发布时间:2024/1/10 14:32:00 -- 代码简化思路求助 对接一个需求需要特殊转化个数据 一共19组数据,上一组为零时引用下一组不为0的数据,写一半感觉代码太累赘了 思路请教 坐标1-19 当上一个值为零=下一个不为零的数据 Dim r As Row = Tables("表A").Current If r("冲孔坐标1")=0 Then If r("冲孔坐标2")>0 Then r("冲孔坐标1")= r("冲孔坐标2") ElseIf r("冲孔坐标3")>0 Then r("冲孔坐标1")= r("冲孔坐标3") ElseIf r("冲孔坐标4")>0 Then r("冲孔坐标1")= r("冲孔坐标4") ElseIf r("冲孔坐标5")>0 Then r("冲孔坐标1")= r("冲孔坐标5") ElseIf r("冲孔坐标6")>0 Then r("冲孔坐标1")= r("冲孔坐标6") ElseIf r("冲孔坐标7")>0 Then r("冲孔坐标1")= r("冲孔坐标7") ElseIf r("冲孔坐标8")>0 Then r("冲孔坐标1")= r("冲孔坐标8") ElseIf r("冲孔坐标9")>0 Then r("冲孔坐标1")= r("冲孔坐标9") ElseIf r("冲孔坐标10")>0 Then r("冲孔坐标1")= r("冲孔坐标10") ElseIf r("冲孔坐标11")>0 Then r("冲孔坐标1")= r("冲孔坐标11") ElseIf r("冲孔坐标12")>0 Then r("冲孔坐标1")= r("冲孔坐标12") ElseIf r("冲孔坐标13")>0 Then r("冲孔坐标1")= r("冲孔坐标13") ElseIf r("冲孔坐标14")>0 Then r("冲孔坐标1")= r("冲孔坐标14") ElseIf r("冲孔坐标15")>0 Then r("冲孔坐标1")= r("冲孔坐标15") ElseIf r("冲孔坐标16")>0 Then r("冲孔坐标1")= r("冲孔坐标16") ElseIf r("冲孔坐标17")>0 Then r("冲孔坐标1")= r("冲孔坐标17") ElseIf r("冲孔坐标18")>0 Then r("冲孔坐标1")= r("冲孔坐标18") ElseIf r("冲孔坐标19")>0 Then r("冲孔坐标1")= r("冲孔坐标19") End If End If If r("冲孔坐标2")=0 Then If r("冲孔坐标3")>0 Then r("冲孔坐标2")= r("冲孔坐标3") ElseIf r("冲孔坐标4")>0 Then r("冲孔坐标2")= r("冲孔坐标4") ElseIf r("冲孔坐标5")>0 Then r("冲孔坐标2")= r("冲孔坐标5") ElseIf r("冲孔坐标6")>0 Then r("冲孔坐标2")= r("冲孔坐标6") ElseIf r("冲孔坐标7")>0 Then r("冲孔坐标2")= r("冲孔坐标7") ElseIf r("冲孔坐标8")>0 Then r("冲孔坐标2")= r("冲孔坐标8") ElseIf r("冲孔坐标9")>0 Then r("冲孔坐标2")= r("冲孔坐标9") ElseIf r("冲孔坐标10")>0 Then r("冲孔坐标2")= r("冲孔坐标10") ElseIf r("冲孔坐标11")>0 Then r("冲孔坐标2")= r("冲孔坐标11") ElseIf r("冲孔坐标12")>0 Then r("冲孔坐标2")= r("冲孔坐标12") ElseIf r("冲孔坐标13")>0 Then r("冲孔坐标2")= r("冲孔坐标13") ElseIf r("冲孔坐标14")>0 Then r("冲孔坐标2")= r("冲孔坐标14") ElseIf r("冲孔坐标15")>0 Then r("冲孔坐标2")= r("冲孔坐标15") ElseIf r("冲孔坐标16")>0 Then r("冲孔坐标2")= r("冲孔坐标16") ElseIf r("冲孔坐标17")>0 Then r("冲孔坐标2")= r("冲孔坐标17") ElseIf r("冲孔坐标18")>0 Then r("冲孔坐标2")= r("冲孔坐标18") ElseIf r("冲孔坐标19")>0 Then r("冲孔坐标2")= r("冲孔坐标19") End If End If ....... 共19组
[此贴子已经被作者于2024/1/10 14:37:03编辑过]
|
|
-- 作者:有点蓝 -- 发布时间:2024/1/10 14:38:00 -- For i As Integer = 1 To 19 If r("冲孔坐标" & i) > 0 Then Dim a As doble = r("冲孔坐标" & i) For j As Integer = 1 To i r("冲孔坐标" & j) = a Next Exit For End If Next
|
|
-- 作者:chen_sheng -- 发布时间:2024/1/10 15:00:00 -- 有点问题,和希望的效果有点差异 |
|
-- 作者:有点蓝 -- 发布时间:2024/1/10 15:25:00 -- 什么差异? |
|
-- 作者:chen_sheng -- 发布时间:2024/1/10 15:35:00 -- 为0时补位仅补1位退出 这些数据任何一栏都可能为0 |
|
-- 作者:有点蓝 -- 发布时间:2024/1/10 15:40:00 -- dim k as integer = 1
|