For it = 1 To MSFlexGrid1.Rows - 1
s = MSFlexGrid1.TextMatrix(it, 1)
s是3位数的数,现在要求d=MSFlexGrid1.TextMatrix(it, 2)统计出当前行(包括当前行)以前,01共出现多少次
如现在有5行数据为
第一行 s=566 那么d=0,没有01出现
第二行s=810 那么d=1, 01在2行数据中共出现1次
第三行s=190 那么d=2,01在3行数据中共出现2次
第四行s=531 那么d=2,01在4行数据中共出现2次
第五行s=105 那么d=3,01在5行数据中共出现3次
i = 0
For it = 1 To MSFlexGrid1.Rows - 1
ss = MSFlexGrid1.TextMatrix(it, 1)
ss1 = UBound(Split(ss, "1"))
ss2 = UBound(Split(ss, "0"))
If (ss1 > ss2) Then ss1 = ss2
i = i + ss1 MSFlexGrid1.TextMatrix(it, 2) = i
Next
现在这个代码可以使用,但是如果改成
ss1 = UBound(Split(ss, "0"))
ss2 = UBound(Split(ss, "0"))
的,也就是统计向500,900,090,600,这样的却不好使,当被比较数字s出现1个0时他现在就计算一次,也就是说它把“0”,“0”和并成1个“0”了,如560,那么它现在就认为是一次了,其实要的是比较数字s要出现2个0才认为是一次,如040,这样的才算一次,11的22的33的等重复的现在和00的情况相同,特别说明,如果s=000,或=111,222,333的那么d=3,因为拿00举例,00共在000中出现3次(百位和十位一次,百位和个位一次,个位和十位一次),该怎么改
s = MSFlexGrid1.TextMatrix(it, 1)
s是3位数的数,现在要求d=MSFlexGrid1.TextMatrix(it, 2)统计出当前行(包括当前行)以前,01共出现多少次
如现在有5行数据为
第一行 s=566 那么d=0,没有01出现
第二行s=810 那么d=1, 01在2行数据中共出现1次
第三行s=190 那么d=2,01在3行数据中共出现2次
第四行s=531 那么d=2,01在4行数据中共出现2次
第五行s=105 那么d=3,01在5行数据中共出现3次
i = 0
For it = 1 To MSFlexGrid1.Rows - 1
ss = MSFlexGrid1.TextMatrix(it, 1)
ss1 = UBound(Split(ss, "1"))
ss2 = UBound(Split(ss, "0"))
If (ss1 > ss2) Then ss1 = ss2
i = i + ss1 MSFlexGrid1.TextMatrix(it, 2) = i
Next
现在这个代码可以使用,但是如果改成
ss1 = UBound(Split(ss, "0"))
ss2 = UBound(Split(ss, "0"))
的,也就是统计向500,900,090,600,这样的却不好使,当被比较数字s出现1个0时他现在就计算一次,也就是说它把“0”,“0”和并成1个“0”了,如560,那么它现在就认为是一次了,其实要的是比较数字s要出现2个0才认为是一次,如040,这样的才算一次,11的22的33的等重复的现在和00的情况相同,特别说明,如果s=000,或=111,222,333的那么d=3,因为拿00举例,00共在000中出现3次(百位和十位一次,百位和个位一次,个位和十位一次),该怎么改
解决方案 »
- 最强的 2维数组问题,能回答这个问题的基本 VB毕业了,满分求教
- 这个api返回的是什么函数呀?
- 怎麼統計這樣的文檔數據?
- VB能否把其他资源包含进程序里?
- 请问有关richtextbox的问题(关于OLEObjects.add)
- 我用VB打过包后,在XP下安装时为什么提问“Path Or File not found ! 对话框?”单击确定按钮退出安装程序!请问怎么解决?(在win98正常)
- 请教用水晶报表的高手们,
- 在VB中怎样进行定位打印????????
- Save(ADO)
- VB下标越界问题?
- 建个项目,两个窗体,form1上放个文本框,按钮各一个,然后拷上我的几行代码,就会重现怪现象
- VB2008和VB6
你原先统计出来 0 的个数只可能是 {0,1,2,3},把它对应成组合数就是 {0,0,1,3}。
ss2 = choose(ss2+1,0,0,1,3)
i = 0
For it = 1 To MSFlexGrid1.Rows - 1
ss = MSFlexGrid1.TextMatrix(it, 1)
ss1 = UBound(Split(ss, k))
ss2 = UBound(Split(ss, "0"))
ss2 = Choose(ss2 + 1, 0, 0, 1, 3)
If (ss1 > ss2) Then ss1 = ss2
i = i + ss1
j=k+2
MSFlexGrid1.TextMatrix(it, j) = i
Next
这么改完,00的是对了,可是01---09都不对了,如果没有ss2 = Choose(ss2 + 1, 0, 0, 1, 3)
这句,只有00是错的,其他都对,该怎么办
if k=0 then
ss1 = Choose(ss2 + 1, 0, 0, 1, 3)
else
If (ss1 > ss2) Then ss1 = ss2
end if
i = 0
For it = 1 To MSFlexGrid1.Rows - 1
ss = MSFlexGrid1.TextMatrix(it, 1)
ss1 = UBound(Split(ss, k))
ss2 = UBound(Split(ss, "0"))
If k = 0 Then
ss1 = Choose(ss2 + 1, 0, 0, 1, 3)
Else
If (ss1 > ss2) Then ss1 = ss2End Ifi = i + ss1
j = k + 2
MSFlexGrid1.TextMatrix(it, j) = iNext
Next
现在想大概改成
For k = 0 To 9
for l = k to 9
i = 0
For it = 1 To MSFlexGrid1.Rows - 1
ss = MSFlexGrid1.TextMatrix(it, 1)
ss1 = UBound(Split(ss, k))
ss2 = UBound(Split(ss, l))'修改
If k = 0 Then'这也要修改,这时的k将来可能是0--9的数,并不是单独的0了,不知改成If k = l Then是否可行
ss1 = Choose(ss2 + 1, 0, 0, 1, 3)
Else
If (ss1 > ss2) Then ss1 = ss2End Ifi = i + ss1
j = k + 2'需要修改成k和l的组合是55种,也就是00---99,从2列开始直到57列,这块我不知道该怎么改了
MSFlexGrid1.TextMatrix(it, j) = iNext
Next
next
请问老师这个该怎么改