以下是引用amulee在2009-12-22 11:09:00的发言: P列用不到? Sub jodzxzhw1() ' Dim ArrYS, lngRowN&, aa, ArrJG, i&, j%, strLing$, StrChuan$ Application.ScreenUpdating = False aa = Timer lngRowN = Sheets("Sheet总表").Range("B65536").End(xlUp).Row ArrYS = Sheets("Sheet总表").Range("B3:H" & lngRowN) ReDim ArrJG(2 To UBound(ArrYS, 1), 1 To UBound(ArrYS, 2)) For i = 2 To UBound(ArrYS, 1) '生成上一期传字符串 StrChuan = Join(WorksheetFunction.Index(ArrYS, i - 1, 0)) '生成上一期临字符串 strLing = "" For j = 1 To UBound(ArrYS, 2) If ArrYS(i - 1, j) = 0 Then strLing = strLing & 1 ElseIf ArrYS(i - 1, j) = 9 Then strLing = strLing & 8 Else strLing = strLing & ArrYS(i - 1, j) - 1 & ArrYS(i - 1, j) + 1 End If '顺便判断一下本期的传 If InStr(1, StrChuan, ArrYS(i, j), vbTextCompare) > 0 Then ArrJG(i, j) = "传" Next j '判断本期 For j = 1 To UBound(ArrYS, 2) If Len(ArrJG(i, j)) = 0 Then If InStr(1, strLing, ArrYS(i, j), vbTextCompare) > 0 Then ArrJG(i, j) = "邻" Else ArrJG(i, j) = "孤" End If End If Next j Next i Sheets("Sheet总表").Range("I4").Resize(UBound(ArrJG, 1) - 1, UBound(ArrJG, 2)) = ArrJG MsgBox "Done!共" & Format(Timer - aa, "0.0000") & "秒" '记录所用的时间 Application.ScreenUpdating = True End Sub
amulee老师:能否将代码注释一下,有些地方不太明白,麻烦了! |