|
|
Sub huiz()
Dim i, j, k, irow, icolumn
Dim ar, br, cr As Variant
Dim d1, d2, d3 As Object
Set d1 = CreateObject("scripting.dictionary")
Set d2 = CreateObject("scripting.dictionary")
Set d3 = CreateObject("scripting.dictionary")
Sheet1.[h1].Resize(15, 6).ClearContents
irow = Sheet1.[a65536].End(xlUp).Row
icolumn = Sheet1.[iv1].End(xlToLeft).Column
ar = Sheet1.[a1].Resize(irow, icolumn)
For i = 2 To irow
d1(ar(i, 1)) = ""
For j = 2 To icolumn
d2(ar(1, j)) = ""
If ar(i, j) <> "" Then
If Not d3.exists(ar(i, 1) & ar(1, j)) Then
d3(ar(i, 1) & ar(1, j)) = ar(i, j)
Else
d3(ar(i, 1) & ar(1, j)) = d3(ar(i, 1) & ar(1, j)) & "," & ar(i, j)
End If
End If
Next
Next
Sheet1.[h2].Resize(d1.Count, 1) = WorksheetFunction.Transpose(d1.keys)
Sheet1.[i1].Resize(1, d2.Count) = d2.keys
br = Sheet1.[h1].Resize(1 + d1.Count, 1 + d2.Count)
ReDim cr(1 To d1.Count, 1 To d2.Count)
For i = 2 To d1.Count + 1
For j = 2 To d2.Count + 1
cr(i - 1, j - 1) = d3(br(i, 1) & br(1, j))
Next
Next
Sheet1.[i2].Resize(UBound(cr), UBound(cr, 2)) = cr
MsgBox "ok"
End Sub
|
|