- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
4#
發表於 2011-7-23 13:03
| 只看該作者
回復 3# day741025
從第3個開始工作表依序到最後的工作表- Sub Ex()
- Dim D As Object, Wb(1 To 2) As Workbook, Sh As Worksheet, Rng As Range
- Dim i As Integer
- Set Wb(1) = Workbooks("舊.xlsx")
- Set Wb(2) = Workbooks("新.xlsx")
- For i = 3 To Wb(1).Sheets.Count '舊.xlsx從第3個開始工作表依序到最後的工作表
- Set D = CreateObject("SCRIPTING.DICTIONARY") '設立變數為字典物件
- Set Rng = Wb(1).Sheets(i).[B2] '舊.xlsx每一工作表的B2開始
- Do
- Set D(Rng.Value) = Rng.Offset(, 1) '紀錄C欄 (Rang物件)
- Set Rng = Rng.Offset(1) 'B欄往下移一列
- Loop Until Rng = "" 'Rng = ""-> 離開迴圈
- Set Rng = Wb(2).Sheets(i).[B2] '新.xlsx從第3個開始工作表依序到最後的工作表
- Do
- If D.EXISTS(Rng.Value) Then D(Rng.Value).Copy Rng.Offset(, 1)
- 'EXISTS ->在Dictionary物件中指定的 關鍵字( Rng.Value ) 存在,傳回 True,若不存在,傳回 False。
- 'D(Rng.Value).Copy Rng.Offset(, 1) '複製儲存格
- Set Rng = Rng.Offset(1) 'B欄往下移一列
- Loop Until Rng = ""
- Next
- End Sub
複製代碼 |
|