|
- Sub 判断()
- Dim brr(1 To 1000, 1 To 4)
- Application.ScreenUpdating = False
- Dim Filename, wb As Workbook, Sh As Worksheet
- Filename = Dir(ThisWorkbook.Path & "\*.xlsx")
- Do While Filename <> ""
- If Filename <> ThisWorkbook.Name Then
- fn = ThisWorkbook.Path & "" & Filename
- Set wb = Workbooks.Open(fn)
- Set Sh = wb.Sheets(1)
- c = Sh.UsedRange.Columns.Count
- rmax = Sh.UsedRange.Rows.Count + 2
- arr = Sh.Range(Sh.[a1], Sh.Cells(rmax, c))
- For j = 1 To c
- n = 0
- r = Sh.Cells(65536, c).End(3).Row + 1 '针对每一列,从有数字下一个空格开始往上数
- For i = r To 3 * r / 4 - 1 Step -1 '只需判断最末一行至最末一行的3/4处
- n = n + 1
- If arr(i, j) = n And i > 3 * n Then '倒数第n行数值为n
- If arr(i - n, j) = n And arr(i - 2 * n, j) = n And arr(i - 3 * n, j) = n Then
- p = p + 1
- brr(p, 1) = n
- brr(p, 2) = wb.Name
- brr(p, 4) = Split(Cells(1, j).Address, "$")(1) '第j列的列号
- End If
- End If
- Next
- Next
- wb.Close False
- End If
- Filename = Dir
- Loop
- If p > 0 Then [e5].Resize(p, 4) = brr
- Application.ScreenUpdating = True
- End Sub
复制代码 |
评分
-
查看全部评分
|