各位前輩好,
小弟目前練習字典物件時遇到一個問題,
附上檔案以供前輩參考:
20161111-查詢並對齊橫列問題.zip (7.94 KB)
問題以文字簡單說明如下:
A欄與B欄為資料總表,依序排列,
A欄儲存格資料與B欄儲存格資料具有相對關係.
C欄與D欄的資料是取自A欄B欄,但是順序經過打亂.
E欄與F欄亦同.
現在是希望可以將資料排序後,將資料的橫列位置對齊A欄與B欄的位置.
用文字說明可能不易理解,
還請前輩參考附檔的"期望結果示意"頁籤.
這個練習問題是改編自以下網址的實例7:
http://club.excelhome.net/thread-868892-1-1.htmlz
該論壇有板友附上參考解答如下,
我用電腦版看不到網站的圖片,
推測可能是從第三橫列開始,與小弟此篇的附檔有些差異,僅供參考:- Private Sub CommandButton1_Click() ‘by:oobird
- Dim d As Object, rng, i%, j%, arr
- Set d = CreateObject("Scripting.Dictionary")
- rng = Range("a3:f" & [a65536].End(xlUp).Row)
- ReDim arr(1 To UBound(rng), 1 To 4)
- For i = 1 To UBound(rng)
- d(CStr(rng(i, 1))) = i
- Next i
- For j = 3 To 5 Step 2
- For i = 1 To Cells(65536, j).End(xlUp).Row - 2
- If d(CStr(rng(i, j))) <> "" Then
- arr(d(CStr(rng(i, j))), j - 2) = rng(i, j)
- arr(d(CStr(rng(i, j))), j - 1) = rng(i, j + 1)
- End If
- Next i
- Next j
- [c3].Resize(UBound(rng), 4) = arr
- End Sub
複製代碼 因為知道論壇上的前輩應該有其他方式的解法,
所以小弟斗膽上來發問,可以的話還望前輩不吝解答,感謝. |