Foxtable(狐表)用户栏目专家坐堂 → 为什么循环的数据不准确?


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

主题:为什么循环的数据不准确?

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


加好友 发短信
等级:一尾狐 帖子:439 积分:4805 威望:0 精华:3 注册:2009/7/4 13:40:00
为什么循环的数据不准确?  发帖心情 Post By: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
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:五尾狐 帖子:1075 积分:9895 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2019/1/20 22:34:00 [只看该作者]

不明白楼主的意思
[此贴子已经被作者于2019/1/20 22:35:56编辑过]

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


加好友 发短信
等级:一尾狐 帖子:439 积分:4805 威望:0 精华:3 注册:2009/7/4 13:40:00
  发帖心情 Post By:2019/1/20 22:49:00 [只看该作者]

在每行的31列中随机写入31-合计数(如25)= 5个1 ,也就是向31列中随机写入5个1

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


加好友 发短信
等级:五尾狐 帖子:1075 积分:9895 威望:0 精华:0 注册:2008/9/2 11:34:00
  发帖心情 Post By:2019/1/21 9:24:00 [只看该作者]

你的随机整数没有判断重复值的情况

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By: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
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:一尾狐 帖子:439 积分:4805 威望:0 精华:3 注册:2009/7/4 13:40:00
  发帖心情 Post By:2019/1/21 11:40:00 [只看该作者]

谢谢,非常感谢

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


加好友 发短信
等级:一尾狐 帖子:439 积分:4805 威望:0 精华:3 注册:2009/7/4 13:40:00
  发帖心情 Post By: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该如何写

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


加好友 发短信
等级:超级版主 帖子:109489 积分:557107 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2020/2/9 21:17:00 [只看该作者]

我不懂vba。但是我知道DataTable、table在EXCEL的vba里面肯定是用不了的

 回到顶部