不知为何你的代码打开汉字是乱码
换个不同操作系统的计算机试试呢
- Sub check()
- 'http://club.excelhome.net/thread-1422774-1-3.html
- Application.ScreenUpdating = flase
- Dim arr, d1, d2
- Set d1 = CreateObject("scripting.dictionary")
- Set d2 = CreateObject("scripting.dictionary")
- With GetObject(ThisWorkbook.Path & "\tool.csv")
- arr = .Sheets("tool").UsedRange
- .Close False
- End With
- For i = 2 To UBound(arr)
- If Not d1.exists(arr(i, 5)) Then
- d1(arr(i, 5)) = arr(i, 9)
- Else
- d1(arr(i, 5)) = d1(arr(i, 5)) & Chr(10) & arr(i, 9)
- End If
- If Not d2.exists(arr(i, 5)) Then
- d2(arr(i, 5)) = arr(i, 10)
- Else
- d2(arr(i, 5)) = d2(arr(i, 5)) & Chr(10) & arr(i, 10)
- End If
- Next
- arr = Sheets("检查表").Range("j2:n" & Sheets("检查表").[n65536].End(3).Row)
- For i = 1 To UBound(arr)
- If InStr(arr(i, 5), Chr(10)) Then
- tmp = Split(arr(i, 5), Chr(10))
- For j = 0 To UBound(tmp)
- If d1.exists(tmp(j)) Then
- If arr(i, 1) = "" Then
- arr(i, 1) = d1(tmp(j))
- Else
- arr(i, 1) = arr(i, 1) & Chr(10) & d1(tmp(j))
- End If
- End If
- If d2.exists(tmp(j)) Then
- If arr(i, 2) = "" Then
- arr(i, 2) = d2(tmp(j))
- Else
- arr(i, 2) = arr(i, 2) & Chr(10) & d2(tmp(j))
- End If
- End If
- Next
- Else
- If d1.exists(arr(i, 5)) Then
- If arr(i, 1) = "" Then
- arr(i, 1) = d1(arr(i, 5))
- Else
- arr(i, 1) = arr(i, 1) & Chr(10) & d1(arr(i, 5))
- End If
- End If
- If d2.exists(arr(i, 5)) Then
- If arr(i, 2) = "" Then
- arr(i, 2) = d2(arr(i, 5))
- Else
- arr(i, 2) = arr(i, 2) & Chr(10) & d2(arr(i, 5))
- End If
- End If
- End If
- Next
- Sheets("检查表").Range("j2").Resize(UBound(arr), UBound(arr, 2)) = arr
- Application.ScreenUpdating = True
- End Sub
复制代码 |