请尝试下面的代码,将范围更改为您需要的范围,并将图纸编号更改为正确的图纸编号(我不会将您的全部范围放在一起,因为如果您有1000个图案发现,必须在消息框上单击确定1000次,只需测试一个部分范围)
这将扫描范围,并找到任何模式的两个在10行范围内,如果您需要它找到更大的模式,你需要再次添加相同的代码,并用额外的IF
语句检查下一个偏移量。
如果同样的模式存在,并且同一列的结构是存在的,但这样只会觉得它的一个开端,你
上测试
Sub test10()
Dim rCell As Range
Dim rRng As Range
Set rRng = Sheets("Sheet1").Range("A1:I60") '-1 on column due to offset
'Scan through all cells in range and find pattern
For Each rCell In rRng.Cells
If rCell.Value = "" Then GoTo skip
For i = 1 To 10
If rCell.Value = rCell.Offset(i, 0).Value Then
If rCell.Offset(0, 1).Value = rCell.Offset(i, 1) Then
MsgBox "Match Found at: " & rCell.Address & ":" & rCell.Offset(0, 1).Address & " and " & rCell.Offset(i, 0).Address & ":" & rCell.Offset(i, 1).Address
End If
End If
Next i
skip:
Next rCell
End Sub
*** UPDATE
工作正常** *
我已经更新了我的代码,下面现在发现的模式无论它可能会出现在未来的10行:
Sub test10()
Dim rCell As Range
Dim rRng As Range
Dim r1 As Range
Dim r2 As Range
Set rRng = Sheets("Sheet1").Range("A1:I50") '-1 on column due to offset
i = 1 'row length
y = 0 'column length
'Scan through all cells in range and find pattern
For Each rCell In rRng.Cells
If rCell.Value = "" Then GoTo skip
i = 1
Do Until i = 10
y = 0
Do Until y = 10
xcell = rCell.Value & rCell.Offset(0, 1).Value
Set r1 = Range(rCell, rCell.Offset(0, 1))
r1.Select
ycell = rCell.Offset(i, y).Value & rCell.Offset(i, y + 1).Value
Set r2 = Range(rCell.Offset(i, y), rCell.Offset(i, y + 1))
If ycell = xcell Then
Union(r1, r2).Font.Bold = True
Union(r1, r2).Font.Italic = True
Union(r1, r2).Font.Color = &HFF&
MsgBox "Match Found at: " & rCell.Address & ":" & rCell.Offset(0, 1).Address & " and " & rCell.Offset(i, y).Address & ":" & rCell.Offset(i, y + 1).Address
Union(r1, r2).Font.Bold = False
Union(r1, r2).Font.Italic = False
Union(r1, r2).Font.Color = &H0&
End If
y = y + 1
Loop
i = i + 1
Loop
skip:
Next rCell
End Sub
首先,您是否希望选择一个“模式”来寻找或者您是否要求它查看您拥有信息的10,000个单元格中的每种可能的组合?如果是后者,那么这将需要很长时间来检查和捕获任何可能发现的事情,甚至可能不可能。 – SilverShotBee 2014-09-03 06:35:04
SilverShotBee:感谢您的回复。 表格现在有2200行左右的固定值,模式,不能说10行限制,表示模式会出现在10行和15行之内。第1行不能与任何超过10行的行匹配。在细胞中只有10种可能性,如果你愿意,我会附上一幅图像。我想找到一个模式。如果匹配一次,我可以写一个AND来匹配它,无论它在哪里。 – VIVEK 2014-09-03 06:39:26
模式的最小长度是多少? '2'? – 2014-09-03 07:08:17