Board logo

標題: 來源資料欄位比對後,將值填到相應的sheet頁面欄位內 [打印本頁]

作者: chi830    時間: 2012-9-13 12:03     標題: 來源資料欄位比對後,將值填到相應的sheet頁面欄位內

[attach]12473[/attach]

請教各位先進
附件中,source為每日匯入的文字檔資料欄位
因在內文裡怕描述不清楚,附件裡面有詳述並標示預期結果
懇請先進們,給予我一些建議與方法

謝謝大家
作者: Hsieh    時間: 2012-9-13 16:32

回復 1# chi830


    source中ID並沒有與你的範例對應
請檢查資料確認對應條件
作者: chi830    時間: 2012-9-14 14:14

回復 2# Hsieh

[attach]12494[/attach]

我在excel中又重新描述了一次,請您再看一下,是否清楚?
主要是想達到說,先從ID找到該寫入哪個sheet?
知道後,再比對符合的日期與班別,將時間寫入這個sheet裡面
作者: Hsieh    時間: 2012-9-14 15:50

回復 3# chi830
  1. Sub ex()
  2. Set d = CreateObject("Scripting.Dictionary")
  3. Set d1 = CreateObject("Scripting.Dictionary")

  4. With Sheets("index")
  5.    For Each a In .Range(.[B2], .[B2].End(xlDown))
  6.    d(a & "") = a.Offset(, -1).Text
  7.    Next
  8. End With
  9. With Sheets("source")
  10.    For Each a In .Range(.[A2], .[A2].End(xlDown))
  11.     d1(a & "," & a.Offset(, 1) & "," & a.Offset(, 2)) = a.Offset(, 3)
  12. Next
  13. End With
  14. For Each ky In d1.keys
  15. sh = d(Split(ky, ",")(0))
  16. With Sheets(sh)
  17. myid = .[A1]
  18.    For Each a In .Range(.[A3], .[A3].End(xlDown))
  19.      a.Offset(, 1).Resize(, 2) = Array(d1(myid & "," & a & "," & "01"), d1(myid & "," & a & "," & "02"))
  20.    Next
  21. End With
  22. Next
  23. End Sub
複製代碼

作者: GBKEE    時間: 2012-9-14 16:17

回復 3# chi830
如果source是一天的上下班時刻資料
  1. Option Explicit
  2. Sub Ex()
  3.     Dim D As Object, E As Variant
  4.     Set D = CreateObject("SCRIPTING.DICTIONARY")
  5.     With Sheets("source")
  6.         For Each E In .Range("A2", .[A2].End(xlDown))
  7.             If D(E.Text) = "" Then
  8.                 D(E.Text) = E(1, 2) & "," & E(1, 4).Text
  9.             Else
  10.                 D(E.Text) = D(E.Text) & "," & E(1, 4).Text
  11.             End If
  12.         Next
  13.     End With
  14.     For Each E In Sheets
  15.         If D(E.Cells(1).Text) <> "" Then
  16.            With E.Cells(E.Rows.Count, 1).End(xlUp).Offset(1)
  17.             .Resize(, 3) = Split(D(E.Cells(1).Text), ",")
  18.            End With
  19.         End If
  20.     Next
  21. End Sub
複製代碼

作者: chi830    時間: 2012-9-19 14:11

[attach]12544[/attach]

非常感謝Hsieh 先進 與GBKEE 先進的答覆

Hsieh先進所答為我預期結果,我試著照此方法修改
但是時間值仍跑不出來,煩請Hsieh大 再幫我一下
看看是哪出了錯?
有些程式碼我還沒了解清楚
謝謝您了

GBKEE 大的方式為直接新增,也可多學了一個方法,感謝您
作者: Hsieh    時間: 2012-9-19 14:57

回復 6# chi830

不知道這樣對不對?

   [attach]12545[/attach]
作者: chi830    時間: 2012-10-4 13:35

回復 7# Hsieh


    Hsieh 大~這是可以的,成功了,謝謝喔!!




歡迎光臨 麻辣家族討論版版 (http://forum.twbts.com/)