ªð¦^¦Cªí ¤W¤@¥DÃD µo©«

[µo°Ý] ¦r¨åª«¥óKEYªº°ÝÃD

scripting.dictionary¨Ï¥ÎºÃ°Ý

½Ð±Ð¦U¦ì°ª¤â
§Ú·Q§âsheet1(¤u§@ªí1)¤¤³¡¤À¸ê®Æ
©ñ¤J¦r¨åª«¥óD(1)  ¥ÎAÄ檺¶Å¨é¥N½X·íKEY
µM«á¨Ì¶Å¨é¥N½X
¶K¤JSheets("¶Å¨é-¤w¥æ³Î³¡¦ì(¥x¹ô)")

¥i¬O°õ¦æ¨ì  .Offset(, 8) = D(1)(rng1.Value)(0)¥X²{¿ù»~

°õ¦æ¶¥¬q¿ù»~"13"
«¬ºA¤£²Å¦X

½Ð°Ý
1.­þ¸Ì¥X°ÝÃD¤F??
2.µ{¦¡¥i¥H¼gªº¦A²¤Æ¤@¨Ç¶Ü??

·P®¦

Sub ¶Å¨é¶K()
Dim rng As Range, rng1 As Range, TP As Range, TP1 As Range
Dim D(1) As Object

Set D(1) = CreateObject("scripting.dictionary")

Sheets("¤u§@ªí1").Select
With Range("a1:a50")
     Set TP = .Find(what:="¥æ©ö³¡¦ì", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext)
End With
Set rng = TP.Offset(2)
Do While rng <> ""
  With rng
     D(1)(rng.Value) = Array(Val(.Offset(, 8)), Val(.Offset(, 9)), Val(.Offset(, 10)), Val(.Offset(, 11)), Val(.Offset(, 12)))
  
  End With
   Set rng = rng.Offset(1)
Loop

Sheets("¶Å¨é-¤w¥æ³Î³¡¦ì(¥x¹ô)").Select

With Range("a1:a50")
     Set TP1 = .Find(what:="¥æ©ö³¡¦ì", LookIn:=xlValues, lookat:=xlWhole, searchdirection:=xlNext)
End With
Set rng1 = TP1.Offset(1)
Do While rng1 <> ""
  With rng1
   .Offset(, 8) = D(1)(rng1.Value)(0)         '³o¸Ì¥X²{¿ù»~
  .Offset(, 9) = D(1)(rng1.Value)(1)
     .Offset(, 10) = D(1)(rng1.Value)(2)
     .Offset(, 11) = D(1)(rng1.Value)(3)
     .Offset(, 12) = D(1)(rng1.Value)(4)
  End With
   Set rng1 = rng1.Offset(1)
Loop

End Sub

¶Å¨é³¡¦ìµû»ù.rar (29.87 KB)

¤p¤Hª«

TOP

«D±`«D±`......·PÁÂ
©~µM¬OªÅ®æªº°ÝÃD
¤S¾Ç¨ì2©Û
Æg
³o¯u¬O­Ó¦n¦a¤è
¤p¤Hª«

TOP

[µo°Ý] ¦r¨åª«¥óKEYªº°ÝÃD

¥»©«³Ì«á¥Ñ jasonwu0114 ©ó 2014-1-9 17:25 ½s¿è

§Ú¦³2­ÓÀÉ®×
A(¥æ©öÁ`ªí) ³¡¦ì¸Õºâªí-³Â»¶-1030108.rar (14.77 KB)
B(¥æ©ö­û­Ó¤H) ªÑÅv§ë¸ê1030107--³Â»¶.rar (17.26 KB)
·Q§Q¥Î¦r¨åª«¥ó
¥ÎªÑ²¼¥N¸¹·íKEY
±NAÀɮפ¤¦³¥æ©ö¤º®e¥á¤J
e(1):¶R-¥æ©ö­û1
e(2):¶R-¥æ©ö­û2
e(3):½æ-¥æ©ö­û1
e(4):½æ-¥æ©ö­û2

µM«á±Ò°ÊBÀÉ®×
sheet(¥æ©ö­û1)¥H²{¦³ªÑ²¼¥N¸¹·íKEY±qE1.E3§ä¸ê®Æ¶K¤W
sheet(¥æ©ö­û2)¥H²{¦³ªÑ²¼¥N¸¹·íKEY±qE2.E4§ä¸ê®Æ¶K¤W
(°²³]­n¶K¤Wªº¸ê®Æ¦bB¤w¸g¦³¸ÓÀɪѲ¼¥N¸¹)

¥i¬O´ú«Ü¤[¶K¤£¹L¥h
¦n¹³¬O¨âÃäªÑ²¼¥N¸¹ªº°ÝÃD
½Ð°Ý
1.­þ¸Ì¥X¤F°ÝÃD???
2.µ{¦¡¥i¥H¼gªº§óºë²¶Ü???
3.¦pªG­n¶K¤Wªº¬O·s¼Ðªº¦bBµLªÑ²¼¥N¸¹,­n¨ÌªÑ²¼¥N¸¹¶¶§Ç½Æ»s¤@¦C´¡¤Jµ{¦¡­n¦p¦ó¼g???
  1. Sub Âà¶K¦ÜªÑÅv()
  2. 'test
  3. Dim bt As Range
  4. Dim rng As Range
  5. Dim s As String
  6. Dim e(1 To 4) As Object

  7. Set e(1) = CreateObject("scripting.dictionary")
  8. Set e(2) = CreateObject("scripting.dictionary")
  9. Set e(3) = CreateObject("scripting.dictionary")
  10. Set e(4) = CreateObject("scripting.dictionary")

  11. Workbooks("³¡¦ì¸Õºâªí-³Â»¶-1030108.xls").Activate

  12. With Sheets("³¡¦ìªí")


  13. For Each bt In Range("a6", .Range("a6").End(xlDown))
  14.   With bt
  15.   
  16.    If .Offset(, 4) <> "" Then
  17.          
  18.          If .Offset(, 15) = "¥æ©ö­û1" Then
  19.             
  20.             e(1)(.Value) = Array(.Offset(, 4).Value, .Offset(, 5).Value)
  21.             
  22.          ElseIf .Offset(, 15).Value = "¥æ©ö­û2" Then
  23.             
  24.             e(2)(.Value) = Array(.Offset(, 4).Value, .Offset(, 5).Value)
  25.             
  26.          End If
  27.          
  28.    End If
  29.    
  30.    If .Offset(, 7) <> "" Then
  31.    
  32.          If .Offset(, 15) = "¥æ©ö­û1" Then
  33.          
  34.             e(3)(.Value) = Array(.Offset(, 7).Value, .Offset(, 9).Value)
  35.             
  36.          ElseIf .Offset(, 15).Value = "¥æ©ö­û2" Then
  37.          
  38.             e(4)(.Value) = Array(.Offset(, 7).Value, .Offset(, 9).Value)
  39.             
  40.          End If
  41.          
  42.    End If
  43.    
  44.   End With
  45. Next

  46. End With


  47. Workbooks("ªÑÅv§ë¸ê1030107--³Â»¶.xls").Activate

  48. With Sheets("¥æ©ö­û1")

  49. Set rng = Sheets("¥æ©ö­û1").Range("a10")

  50.    Do While rng <> ""
  51.    s = Val(rng)
  52.    
  53.          If e(1).exists(s) Then
  54.          
  55.             .Offset(, 6) = e(1)(s)(0)
  56.             .Offset(, 7) = e(1)(s)(1)
  57.          End If
  58.          
  59.          If e(3).exists(rng) Then
  60.             .Offset(, 8) = e(3)(rng)(0)
  61.             .Offset(, 10) = e(3)(rng)(1)
  62.          End If
  63.          
  64.       Set rng = rng.Offset(1)
  65.    Loop
  66.    
  67. End With


  68. End Sub
½Æ»s¥N½X
¤p¤Hª«

        ÀR«ä¦Û¦b : ½_ÁJµ²±o¶V¹¡º¡¡A¶V·|©¹¤U««¡A¤@­Ó¤H¶V¦³¦¨´N¡A´N­n¶V¦³Á¾¨Rªº¯ÝÃÌ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD