- 帖子
- 835
- 主題
- 6
- 精華
- 0
- 積分
- 915
- 點名
- 0
- 作業系統
- Win 10,7
- 軟體版本
- 2019,2013,2003
- 閱讀權限
- 50
- 性別
- 男
- 註冊時間
- 2010-5-3
- 最後登錄
- 2024-11-14
|
2#
發表於 2016-3-25 00:29
| 只看該作者
本帖最後由 luhpro 於 2016-3-25 00:38 編輯
回復 1# maggie1313
一般若遇到 "有一個共同的KEY 值(不會重覆)" 這類的需求,
我會優先使用 Directory 函數來實現.
因為你沒提供範例Excel檔案,
所以我另外做一個,
你可以參照修改實現你的需求.
- Private Sub cbMerge_Click()
- Dim lRow&
- Dim sStr$
- Dim vD1, vD2
-
- Set vD1 = CreateObject("Scripting.Dictionary")
- Set vD2 = CreateObject("Scripting.Dictionary")
-
- Sheets("合併").Range([B2], [C100]).Clear
-
- With Sheets("索引一")
- lRow = 2
- While .Cells(lRow, 1) <> ""
- vD1(CStr(.Cells(lRow, 1))) = .Cells(lRow, 2)
- lRow = lRow + 1
- Wend
- End With
-
- With Sheets("索引二")
- lRow = 2
- While .Cells(lRow, 1) <> ""
- vD2(CStr(.Cells(lRow, 1))) = .Cells(lRow, 2)
- lRow = lRow + 1
- Wend
- End With
- With Sheets("合併")
- lRow = 2
- While .Cells(lRow, 1) <> ""
- sStr = .Cells(lRow, 1)
- .Cells(lRow, 2) = vD1(sStr)
- .Cells(lRow, 3) = vD2(sStr)
- lRow = lRow + 1
- Wend
- End With
- End Sub
複製代碼
Dictionary實做.zip (10.02 KB)
補充:
如果需要用到整列中不只一欄的資料,
可以索引 列號:
vD1(CStr(.Cells(lRow, 1))) = lRow
再用
Sheets("合併").Cells(lRow, 2) = Sheets("索引一").Cells(vD1(sStr), 欄號)
來取得想要的資料.
另外,建議大家開題文中儘量能一併提供已經打好範例資料的Excel檔案,
這樣回文的人才不用還要自己依照圖片內容一個一個輸入資料建Excel檔案,
可以把時間專注在如何實現你的需求上. |
|