|
- Option Base 1
- Sub test()
- Dim i As Integer
- Dim j As Integer
- Dim arr() As Integer
- Dim m As Integer
- Dim ran As Range
- Dim ran2 As Range
- Dim zz
- Dim fz
- '总体思路把相邻B列空单元格之间的区域选出来,然后在这个小区域内循环比较出正数与12、负数与-12最接近的数
- n = 1
- m = Range("b65536").End(xlUp).Row + 1 'B列最下面非空单元格下一个空单元格所在行
- s = Range("b1:b" & m).SpecialCells(xlCellTypeBlanks).Count '为什么b1:b36 空单元格是3个?不是4个么?
- ReDim arr(s) '
- 'ran = Range("b1:b" & m).SpecialCells(xlCellTypeBlanks) '为什么不能这样赋值?
- For Each ran2 In Range("b1:b" & m).SpecialCells(xlCellTypeBlanks)
- arr(n) = ran2.Row '这个循环几次后里面ran2.row也没36,导致最后面的桩号无法标注出来
- If n > 1 Then
- For p = arr(n - 1) + 1 To arr(n) - 2
- zz = Range("b" & p)
- fz = Range("b" & p)
- If zz >= 0 And Abs(zz - 12) > Abs(Range("b" & p + 1) - 12) Then
- z = p + 1
- End If
- If fz < 0 And Abs(zz + 12) > Abs(Range("b" & p + 1) + 12) Then
- f = p + 1
- End If
- Next p
- Range("d" & z) = "ZZ"
- Range("d" & f) = "FZ"
- End If
- n = n + 1
- Next
- End Sub
复制代码
|
|