|
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用 · 内置多项VBA编程加强工具 ★ 免费下载 ★ ★ 使用手册★
老师 下面代码中为何要 ( If Not ds.Exists(Arr(i, 1)) Then)这个判断啊.字典本来就不会存储重复的关键字啊! 请老师指点一下谢谢
Sub 拆分()
Dim pp1$, pp2$, nRow%, ds, Brr(), s(1 To 3) As Integer
Set ds = CreateObject("scripting.dictionary")
pp1 = Join(WorksheetFunction.Transpose(Range(Range("g2"), Range("g1").End(xlDown))), ",")
pp2 = Join(WorksheetFunction.Transpose(Range(Range("h2"), Range("h1").End(xlDown))), ",")
nRow = Range("a1").End(xlDown).Row
Arr = Range("a1:a" & nRow)
ReDim Brr(1 To nRow, 1 To 3)
For i = 2 To nRow
If Not ds.Exists(Arr(i, 1)) Then
ds(Arr(i, 1)) = ""
If pp1 Like "*" & Left(Arr(i, 1), 2) & "*" Then
s(1) = s(1) + 1
Brr(s(1), 1) = Arr(i, 1)
ElseIf pp2 Like "*" & Left(Arr(i, 1), 2) & "*" Then
s(2) = s(2) + 1
Brr(s(2), 2) = Arr(i, 1)
Else
s(3) = s(3) + 1
Brr(s(3), 3) = Arr(i, 1)
End If
End If
Next
Range("c2:e" & nRow) = Brr
End Sub
|
|