Foxtable(狐表)用户栏目专家坐堂 → 请指教:循环赋值代码


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

主题:请指教:循环赋值代码

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


加好友 发短信
等级:小狐 帖子:349 积分:4088 威望:0 精华:0 注册:2018/4/6 18:02:00
请指教:循环赋值代码  发帖心情 Post By:2019/5/10 14:16:00 [只看该作者]

 

各位老师:

   我想在代码中实现:当循环第一次时,表中单元格13,0的值是1,13,1的值是AB,循环第二次时:表中单元格14,0的值是214,1的值是BC,依次类推!

Dim  Multi As String = "AB|BC|CD|DE"
Dim Values() As String = Multi.split("|")
Dim fs As String = Values.Length
For Index As  Integer = 0 To Values.Length - 1
    Output.Show(Values(Index))
Next
For xh As  Integer = 1 To fs Step 1
    Output.Show(xh)
Next

这段代码在命令窗口实现了我想要的结果,

AB

BC

CD

DE

1

2

3

4

但怎样将循环值赋给单元格,并且每循环一次将单元格的行数增加一,这段代码折腾了好几天写不出来

    Sheet(13,0).Value = xh
    Sheet(13,1).Value = Values(0)

请各位老师指点!

谢谢!


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


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

Dim  Multi As String = "AB|BC|CD|DE"
Dim Values() As String = Multi.split("|")
Dim fs As String = Values.Length
For Index As  Integer = 0 To Values.Length - 1
    Output.Show(index+1 & " " & Values(Index))
    'Sheet(13+Index,0).Value = index+1
    'Sheet(13+Index,1).Value = Values(Index)
Next

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


加好友 发短信
等级:小狐 帖子:349 积分:4088 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2019/5/10 15:41:00 [只看该作者]

谢谢甜老师指导!


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


加好友 发短信
等级:小狐 帖子:349 积分:4088 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2019/5/10 16:15:00 [只看该作者]

甜老师:

Dim bljypz As Integer = DataTables("部品质量管理").getValues("编号图号", "检验员 = '" & Values(Index) & "' And 检验区分 = '其它' And 日期>= # " & d1 & "# And 日期<= # " & d & "#").count
    If bljypz = "0" Then Sheet(13+Index,2 ).Value = " " Else Sheet(13+Index,2 ).Value = bljypz
    If bljypz = "0" Then Sheet(13+Index+1,2 ).Value = "" Else Sheet(13+Index+1,2 ).Value = bljypz  '对所有循环计数求和

我想在循环完后的下一行求和,但得出的是最后一个值,不是求和,可能标红的变量不对,但我摸不出头绪,还请老师给指点一下,拨拨谜雾!

谢谢!


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


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

 

不理解你说的求和,是哪些数据求和,请具体举例说明。

 

 


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


加好友 发短信
等级:小狐 帖子:349 积分:4088 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2019/5/10 17:33:00 [只看该作者]

检验员有多个人,每个人检验的品种数不一样,要对这些检验员检验品种数进行求和!

  检验员1检了12个品种,bljypz=12

  检验员2检了10个品种,bljypz=10

  ...

  检验员N检了8个品种,bljypz=8

对所有检验员检验品种求和。

If bljypz = "0" Then Sheet(13+Index+1,2 ).Value = "" Else Sheet(13+Index+1,2 ).Value = 12+10+..+8

 

谢谢!


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


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

定义 Dim bljypz As Integer = 0 在循环的外面

 

在循环的过程中,累加值,如

 

bljypz += 每次的个数 '12、10等

 

 


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


加好友 发短信
等级:小狐 帖子:349 积分:4088 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2019/5/10 19:42:00 [只看该作者]

甜版:我有点懵,这是我的代码,您费心给改改!

 

Dim zhkdmjyy As DataRow = DataTables("组合框代码").DataRows(11) '组合框代码中的第11行

Dim Multi As String = zhkdmjyy("列表项目")                      '组合框代码中的第11行的列表项目一列的值

Dim Values() As String = Multi.split("|")                    '用号分割成姓名数据

For Index As  Integer = 0 To Values.Length - 1        '从0开始

    Sheet(13+Index,0).Value = index+1                 '从1开始

    Sheet(13+Index,1).Value = Values(Index)           '从0开始的姓名

Dim bljypz As Integer = DataTables("部品质量管理").getValues("编号图号", "检验员 = '" & Values(Index) & "' And 检验区分 = '其它' And 日期>= # " & d1 & "# And 日期<= # " & d & "#").count '对不重复的图号进行计数

    If bljypz = "0" Then Sheet(13+Index,2 ).Value = " " Else Sheet(13+Index,2 ).Value = bljypz

Dim bljysl As Integer = DataTables("部品质量管理").Compute("Sum([交检])", "检验员 = '" & Values(Index) & "' And 检验区分 = '其它' And 日期>= # " & d1 & "#   And 日期<= # " & d & "#")         

 If bljysl  = "0" Then Sheet(13+Index,3 ).Value = " " Else Sheet(13+Index,3 ).Value = bljysl     

    Sheet(13+Index+1,0).Value = index+1+1

Sheet(13+Index+1,1).Value = "合计"

   If bljypz = 0 Then Sheet(13+Index+1,2 ).Value = "" Else Sheet(13+Index+1,2 ).Value = bljypz

   If bljysl  = 0 Then Sheet(13+Index+1,3 ).Value = "" Else Sheet(13+Index+1,3 ).Value = bljysl

Next

 

谢谢!


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


加好友 发短信
等级:超级版主 帖子:110450 积分:562116 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2019/5/10 20:30:00 [只看该作者]

    Dim bljypz As Integer = DataTables("部品质量管理").getValues("编号图号", "检验员 = '" & Values(Index) & "' And 检验区分 = '其它' And 日期>= #" & d1 & "# And 日期<= #" & d & "#").count '对不重复的图号进行计数
    If bljypz = "0" Then Sheet(13+Index,2 ).Value = " " Else Sheet(13+Index,2 ).Value = bljypz
    Dim bljysl As Integer = DataTables("部品质量管理").Compute("Sum([交检])", "检验员 = '" & Values(Index) & "' And 检验区分 = '其它' And 日期>= #" & d1 & "#   And 日期<= #" & d & "#")

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


加好友 发短信
等级:小狐 帖子:349 积分:4088 威望:0 精华:0 注册:2018/4/6 18:02:00
  发帖心情 Post By:2019/5/10 21:40:00 [只看该作者]

蓝老师:主要是实现标红的两句代码,

   If bljypz = 0 Then Sheet(13+Index+1,2 ).Value = "" Else Sheet(13+Index+1,2 ).Value = bljypz ‘对所有检验员的bljypz进行求和后赋值在表的单元格内

   If bljysl  = 0 Then Sheet(13+Index+1,3 ).Value = "" Else Sheet(13+Index+1,3 ).Value = bljysl  ‘对所有检验员的bljysl进行求和后赋值在表的单元格内

谢谢!


 回到顶部
总数 14 1 2 下一页