以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  请指教:循环赋值代码  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=134847)

--  作者:cxmxjwlmq
--  发布时间: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)

请各位老师指点!

谢谢!


--  作者:有点甜
--  发布时间: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
--  发布时间:2019/5/10 15:41:00
--  

谢谢甜老师指导!


--  作者:cxmxjwlmq
--  发布时间: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  \'对所有循环计数求和

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

谢谢!


--  作者:有点甜
--  发布时间:2019/5/10 16:30:00
--  

 

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

 

 


--  作者:cxmxjwlmq
--  发布时间: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

 

谢谢!


--  作者:有点甜
--  发布时间:2019/5/10 18:27:00
--  

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

 

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

 

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

 

 


--  作者:cxmxjwlmq
--  发布时间: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

 

谢谢!


--  作者:有点蓝
--  发布时间: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
--  发布时间: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进行求和后赋值在表的单元格内

谢谢!