以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  为什么循环的数据不准确?  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=130388)

--  作者:ybmjy
--  发布时间:2019/1/20 22:24:00
--  为什么循环的数据不准确?
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:测试.table

DataTables("考勤表").Save()
For Each dr  As Row In Tables("考勤表").Rows
    Dim sj As Integer = 31-dr("合计")
    Dim m As Integer
    Dim i As Integer = 1
    Do While i <= sj
        m= rand.Next(1,31)
        dr("A"&m) = 1
        i = i + 1
    Loop
Next

问题是:一样的数据有的行是正确的,有的行会少
[此贴子已经被作者于2019/1/20 22:28:49编辑过]

--  作者:bohe
--  发布时间:2019/1/20 22:34:00
--  
不明白楼主的意思
[此贴子已经被作者于2019/1/20 22:35:56编辑过]

--  作者:ybmjy
--  发布时间:2019/1/20 22:49:00
--  
在每行的31列中随机写入31-合计数(如25)= 5个1 ,也就是向31列中随机写入5个1
--  作者:bohe
--  发布时间:2019/1/21 9:24:00
--  
你的随机整数没有判断重复值的情况
--  作者:有点甜
--  发布时间:2019/1/21 9:39:00
--  
DataTables("考勤表").Save()
For Each dr  As Row In Tables("考勤表").Rows
    For i As Integer = 1 To 31
        dr("A" & i) = Nothing
    Next
    Dim sj As Integer = 31-dr("合计")
    Dim ls As new List(of String)
    For i As Integer = 1 To sj
        Dim m= rand.Next(1,31)
        Do until ls.contains(m) = False
            m= rand.Next(1,31)
        Loop
        ls.add(m)
        dr("A"&m) = 1
    Next
Next

--  作者:ybmjy
--  发布时间:2019/1/21 11:40:00
--  
谢谢,非常感谢
--  作者:ybmjy
--  发布时间:2020/2/8 19:50:00
--  
DataTables("考勤表").Save()
For Each dr  As Row In Tables("考勤表").Rows
    For i As Integer = 1 To 31
        dr("A" & i) = Nothing
    Next
    Dim sj As Integer = 31-dr("合计")
    Dim ls As new List(of String)
    For i As Integer = 1 To sj
        Dim m= rand.Next(1,31)
        Do until ls.contains(m) = False
            m= rand.Next(1,31)
        Loop
        ls.add(m)
        dr("A"&m) = 1
    Next
Next
以上这段代码在EXCEL中用VBA该如何写

--  作者:有点蓝
--  发布时间:2020/2/9 21:17:00
--  
我不懂vba。但是我知道DataTable、table在EXCEL的vba里面肯定是用不了的