Sub xfind()
'
' 在本分頁中順序讀取員工編號,
' 於「直式更表」中尋找相關員工。
' 由於是兩欄式更表,故要 find 兩次,
' 找到後,以 offset 取回值然後寫入。
'
' 取得A欄的行數
k = ActiveSheet.Range("A65536").End(xlUp).Row
' 設定迴圈
For i = 1 To k
 ' 讀取員工編號
 ID = Cells(i, "a").Value
 '開始 find ,分兩欄取值 c d
 With Worksheets("直式更表")
      Set c = .Range("F:F").Find(ID, LookIn:=xlValues)
    Set d = .Range("H:H").Find(ID, LookIn:=xlValues)
 End With
 '   如 c 有值則直接寫入
 If Not c Is Nothing Then
   Cells(i, "H") = c.Offset(, -1)
 '   如 c 沒有值,再 find 第二欄,找到則直接寫入    
 ElseIf Not d Is Nothing Then
        Cells(i, "H") = d.Offset(, -3)
   Else
   '       如仍沒有值,則寫入「找不到」
   Cells(i, "H") = "找不到"
  End If
Next i
End Sub
 
 
 
 
 
 
沒有留言:
張貼留言