- 帖子
- 559
- 主題
- 58
- 精華
- 0
- 積分
- 626
- 點名
- 0
- 作業系統
- win8
- 軟體版本
- office2013
- 閱讀權限
- 50
- 性別
- 男
- 來自
- TW
- 註冊時間
- 2010-11-22
- 最後登錄
- 2024-6-14
|
本帖最後由 hugh0620 於 2012-9-30 19:17 編輯
回復 1# cslinmiso
============================================
在使用時~ 可能要考量一下函數的意義與比對資料的方式~
您總共要比對三個欄位的資料~ 所以~ 用vlookup與match比較不適當~
vlookup用在同一欄進行比對~ 但您有三個欄位要比對~~ 寫法上不實用~ 且複雜~
可以更直覺的用if 判斷 abc三欄同一列的資料是否一樣~
============================================
個人的寫法是當您在sheet2中輸入資料~
要判斷
1. 是否在column1.2.3輸入資料
2. column1.2.3資料是否輸入完整
3. 最後將sheet2新入輸的資料從sheet1的第一筆資料開始比對~ 找資料是否有與sheet1相符的~
如果有就將資料抓取到sheet2
缺點: 當sheet1中有重覆的資料~ 就會被覆蓋~
提供給您參考~- Private Sub Worksheet_Change(ByVal Target As Range)
- A = Target.Column
- B = Target.Row
- If A > 3 Then Exit Sub
- Select Case A
- Case 1
- If Target.Offset(0, 1) = "" And Target.Offset(0, 2) = "" Then Exit Sub
- Case 2
- If Target.Offset(0, -1) = "" And Target.Offset(0, 1) = "" Then Exit Sub
- Case 3
- If Target.Offset(0, -2) = "" Or Target.Offset(0, -1) = "" Then Exit Sub
- End Select
- I = 0
- Do Until Sheet1.Range("A" & 2 + I) = ""
- If Sheet1.Range("A" & 2 + I) = Sheet2.Range("A" & B) And Sheet1.Range("B" & 2 + I) = Sheet2.Range("B" & B) And Sheet1.Range("C" & 2 + I) = Sheet2.Range("C" & B) Then
- Sheet2.Range("D" & B) = Sheet1.Range("D" & 2 + I)
- Sheet2.Range("E" & B) = Sheet1.Range("E" & 2 + I)
- Sheet2.Range("F" & B) = Sheet1.Range("F" & 2 + I)
- End If
- I = I + 1
- Loop
- End Sub
複製代碼 |
|