Dim arr(1 To 20) As String
Dim i, j As Integer
Dim iCount As Integer '空缺个数
Dim arrLack(1 To 20) As String 空缺数组
arr(1) = "1"
arr(2) = "2"
arr(3) = "3"
arr(4) = "6" '在这个地方人为的产生空缺为:4、5
For i = 5 To 20
arr(i) = Trim(Str(i + 2))
Next '这里完成对整个数组的赋值。
iCount = 0
For i = 1 To 19 '遍历数组中的每一个元素
If Val(arr(i + 1)) - Val(arr(i)) <> 1 Then
' 如果数组的后一个元素与前一个元素差值不为1,也就是说两个相邻单元的数字不连续。
'如:arr(4)=6,而arr(3)=3,差值为3。则进入查漏部分。
For j = 1 To Val(arr(i + 1)) - Val(arr(i)) - 1
'循环范围是相邻数组元素的差值-1。比如6到3有两个差值:6-3-1=2,在此就循环两次
iCount = iCount + 1
arrLack(iCount) = Trim(Str(Val(arr(i)) + j))
Debug.Print arrLack(iCount)
Next
End If
Next
Dim i, j As Integer
Dim iCount As Integer '空缺个数
Dim arrLack(1 To 20) As String 空缺数组
arr(1) = "1"
arr(2) = "2"
arr(3) = "3"
arr(4) = "6" '在这个地方人为的产生空缺为:4、5
For i = 5 To 20
arr(i) = Trim(Str(i + 2))
Next '这里完成对整个数组的赋值。
iCount = 0
For i = 1 To 19 '遍历数组中的每一个元素
If Val(arr(i + 1)) - Val(arr(i)) <> 1 Then
' 如果数组的后一个元素与前一个元素差值不为1,也就是说两个相邻单元的数字不连续。
'如:arr(4)=6,而arr(3)=3,差值为3。则进入查漏部分。
For j = 1 To Val(arr(i + 1)) - Val(arr(i)) - 1
'循环范围是相邻数组元素的差值-1。比如6到3有两个差值:6-3-1=2,在此就循环两次
iCount = iCount + 1
arrLack(iCount) = Trim(Str(Val(arr(i)) + j))
Debug.Print arrLack(iCount)
Next
End If
Next
解决方案 »
- 要怎么区别串口有没有被使用?
- vsFlexGrid的问题,显示数据不正确.
- 请教高手:vb重复导出Excel出错问题?
- 请教在VB中不用WINSOCK控件写UDP(广播方式)聊天的方法
- 价值几万元的学习资料拿出来共享!
- 我做的ActiveX插件,出现“Class does not support Automation or does support expected interface",为什么?
- VB中跳出循环,继续执行的语句是什么?
- 为什么不执行查询啊?(很菜的问题)
- 开机直接运行我的程序,并且不显示Windows开机画面。
- 请各位大侠帮个忙!谢谢!
- 如何用光标建在窗口中移动焦点???
- 怎样让Treeview控件节点前出现checkbox复选框?
首先用一个判断
If Val(arr(i + 1)) - Val(arr(i)) <> 1 判断出出现空缺的地方
然后计算中间空缺的个数 Val(arr(i + 1)) - Val(arr(i))
用一个循环将所有空缺的数读到数组arrLack中