6,210
社区成员
发帖
与我相关
我的任务
分享
Sub ChaZhao1(L1 As Integer, L2 As Integer)
For Each c1 In Sheet1.Range("A2:A" & L1) ' sheet1 单元格循环
sOLD = 0
For Each c2 In Sheet2.Range("A2:A" & L2) ' sheet2 单元格循环
sNow = 0
For p = 1 To Len(c1) '计算每个字符在sheet2出现的次数和,并找出最大的
If InStr(1, c2, Mid(c1, p, 1)) > 0 Then sNow = sNow + 1 '找到一个就加1
Next p
If sNow > sOLD Then '查找最大的数,并记录单元格行号
sOLD = sNow: pp = c2.Row
End If
Next c2
Sheet1.Range("B" & c1.Row) = Sheet2.Range("A" & pp)
Next c1
End Sub
Sub ChaZhao2(L1 As Integer, L2 As Integer)
For Each c1 In Sheet2.Range("A2:A" & L2) ' sheet2 单元格循环
sOLD = 0
For Each c2 In Sheet1.Range("A2:A" & L1) ' sheet1 单元格循环
sNow = 0
For p = 1 To Len(c1) '计算每个字符在sheet1出现的次数和,并找出最大的
If InStr(1, c2, Mid(c1, p, 1)) > 0 Then sNow = sNow + 1 '找到一个就加1
Next p
If sNow > sOLD Then '查找最大的数,并记录单元格行号
sOLD = sNow: pp = c2.Row
End If
Next c2
Sheet1.Range("B" & pp) = c1
Next c1
End Sub
Sub main()
'主程序
Dim L1 As Integer, L2 As Integer
Application.ScreenUpdating = False
Sheet1.Columns("B:C").ClearContents
L1 = Sheet1.[A65530].End(xlUp).Row
L2 = Sheet2.[A65530].End(xlUp).Row
ChaZhao1 L1, L2
With Sheet1
.Range("C2:C" & L1).FormulaR1C1 = "=IF(COUNTIF(C[-1],RC[-1])>1,""ERROR"","""")"
.Range("C2:C" & L1).Value = .Range("C2:C" & L1).Value
.Rows("2:" & L1).Sort Key1:=.Range("C2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal
L1 = .[C65530].End(xlUp).Row
End With
With Sheet2
.Range("B2:B" & L2).FormulaR1C1 = "=IF(ISERROR(VLOOKUP(RC[-1],Sheet1!C:C[1],2,0)),""ERROR"","""")"
.Range("B2:B" & L2).Value = .Range("B2:B" & L2).Value
.Rows("2:" & L2).Sort Key1:=.Range("B2"), Order1:=xlDescending, Header:=xlGuess, _
OrderCustom:=1, MatchCase:=False, Orientation:=xlTopToBottom, SortMethod:=xlPinYin, DataOption1:=xlSortNormal
L2 = .[B65530].End(xlUp).Row
End With
ChaZhao2 L1, L2
Range("C2:C" & L1).FormulaR1C1 = "=IF(COUNTIF(C[-1],RC[-1])>1,""ERROR"","""")"
Sheet2.Columns("B:B").ClearContents
Application.ScreenUpdating = True
End Sub
Dim L1, L2, p, sNow, sOLD, pp
Columns("B:C").ClearContents
For L1 = 2 To [A65530].End(xlUp).Row ' sheet1 单元格循环
With Sheet2
sOLD = 0
For L2 = 2 To .[A65530].End(xlUp).Row ' sheet2 单元格循环
sNow = 0
c = Range("A" & L1) ' sheet1 单元格内容
For p = 1 To Len(c) '计算每个字符在sheet2出现的次数和,并找出最大的
If InStr(1, .Range("A" & L2), Mid(c, p, 1)) > 0 Then
sNow = sNow + 1 '找到一个就加1
End If
Next p
If sNow > sOLD Then '查找最大的数,并记录单元格行号
sOLD = sNow
pp = L2
End If
Next L2
Range("B" & L1) = .Range("A" & pp)
End With
Next L1
'标示错误
Range("C2:C" & [A65530].End(xlUp).Row).FormulaR1C1 = "=IF(COUNTIF(C[-1],RC[-1])>1,""ERROR"","""")"
A B C
昆明医学院第一附属医院 昆明医学院第一附属医院
云南省第一人民医院 云南第一人民医院
昆明市延安医院 昆明延安医院
昆明医学院第三附属医院 昆明医学院第三附属医院
云南中医院 云南省中医院
成都军区昆明总医院 成都军区昆明总医院(43医院)
昆明市中医院 昆明市五华区人民医院 ERROR
昆明市五华区人民医院 昆明市五华区人民医院 ERROR
昆明红云医院 昆明红云医院
安宁人民医院 安宁人民医院
昆明市第二人民医院 昆明市第二人民医院
云南昆钢医院 云南昆钢医院
嵩明县医院 嵩明人民医院
云南省红十字会医院 云南省红十字会医院
昆明市第一人民医院 昆明市第一人民医院
昆明医学院第二附属医院 昆明医学院第二附属医院
楚雄州人民医院 楚雄州人民医院
云南省第三人民医院 云南省第三人民医院
云南省交通中心医院 云南省交通中心医院
楚雄州中医院 云南楚雄州中医院
宜良县中医院 宜良县中医医院