[attach]7029[/attach]
如圖 請問不要用函數 或&,把ABC三欄的資料合併剽替定儲存格裡
A B C 不一定會有資料 因為有時不會有重複
先感謝各位先進作者: dechiuan999 時間: 2011-7-17 08:22
你好:
請試試如下
Sub aa()
Dim mDic1 As Scripting.Dictionary
Dim mDic2 As Scripting.Dictionary
Dim mDic3 As Scripting.Dictionary
Dim mRng1, mRng2, mRng3
Dim mSht As Worksheet
Dim mRow1%, mRow2%, mRow3%
Dim mStr1$
Dim s%, s1%
Dim mData1(), mData2(), mData3()
Dim mRng As Range
Set mDic1 = CreateObject("scripting.dictionary")
Set mDic2 = CreateObject("scripting.dictionary")
Set mDic3 = CreateObject("scripting.dictionary")
For s = 1 To mRow1
mStr1 = mRng1(s, 1)
mDic1.Add mRng1(s, 1), ""
Next
For s = 1 To UBound(mRng1)
mStr1 = mRng1(s, 2)
If mDic1.Exists(mStr1) = True Then
ReDim Preserve mData1(s1)
mData1(s1) = mStr1 & ","
s1 = s1 + 1
End If
Next
Set mRng = .Columns("a")
With mRng
.Replace ",", ""
End With
For s = 1 To mRow2
mStr1 = mRng2(s, 1)
mDic2.Add mRng2(s, 1), ""
Next
s1 = 0
For s = 1 To UBound(mRng2)
mStr1 = mRng2(s, 2)
If mDic2.Exists(CInt(mStr1)) = True Then
ReDim Preserve mData2(s1)
mData2(s1) = mStr1 & ","
s1 = s1 + 1
End If
Next
.Range("b1").Resize(s1) = Application.Transpose(mData2)
Set mRng = .Columns("b")
With mRng
.Replace ",", ""
End With
For s = 1 To mRow3
mStr1 = mRng3(s, 1)
mDic3.Add mRng3(s, 1), ""
Next
s1 = 0
For s = 1 To UBound(mRng3)
mStr1 = mRng3(s, 2)
If mDic3.Exists(mStr1) = True Then
ReDim Preserve mData3(s1)
mData3(s1) = mStr1 & ","
s1 = s1 + 1
End If
Next
.Range("c1").Resize(s1) = Application.Transpose(mData3)
Set mRng = .Columns("c")
With mRng
.Replace ",", ""
End With
.Range("a7") = Join(mData1) & Join(mData2) & Join(mData3)
End With
End Sub作者: oobird 時間: 2011-7-17 10:15
Sub yy()
Dim d As Object, i%, r%, w$, s$, t, c As Range
[a:c] = ""
Set d = CreateObject("scripting.dictionary")
For i = 6 To 10 Step 2
For Each c In Cells(1, i).Resize(6, 2).SpecialCells(2)