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

{Âà¶K°ÝÃD}±N¦h­Ó¤u§@ªí¨Ì¤£¦P¤ñ¹ï¼Æ¾Ú±N¹ïÀ³ªº¼Æ­È¶ñ¤J¤u§@ªí1ªºÄæ¦ì

{Âà¶K°ÝÃD}±N¦h­Ó¤u§@ªí¨Ì¤£¦P¤ñ¹ï¼Æ¾Ú±N¹ïÀ³ªº¼Æ­È¶ñ¤J¤u§@ªí1ªºÄæ¦ì

½Ð°Ý­n¦p¥Îvbaªº¤è¦¡±N¦h­Ó¤u§@ªí¨Ì¤£¦P¤ñ¹ï¸ê®Æ±N¹ïÀ³ªº¼Æ­È¶ñ¤J¤u§@ªí1ªº«ü©wÄæ¦ì©O?
¨Ò:¤u§@ªí1ªºAÄæ¸ê®Æ¥h¤ñ¹ï¤u§@ªí3.¤u§@ªí4.¤u§@ªí7ªºAÄæ¸ê®Æ±N¹ïÀ³ªºCÄæ¼Æ­È¶ñ¤J¤u§@ªí1ªºFÄæ.GÄæ.HÄæ
     ¤u§@ªí1ªºDÄæ¸ê®Æ¥h¤ñ¹ï¤u§@ªí2.¤u§@ªí5.¤u§@ªí6ªºAÄæ¸ê®Æ±N¹ïÀ³ªºCÄæ¼Æ­È¶ñ¤J¤u§@ªí1ªºIÄæ.JÄæ.KÄæ
¦]¸ê®Æ¦³´X¸Uµ§,¤£ª¾¥i¥H¥Îvbaªº¤è¦¡±N¸ê®Æ§Ö³t¶ñ¤J¤S¤£·|¯Ó¸ê·½¦Ó¾É­P¹q¸£¤@ª½Âà°é°é

«á¾Ç·Pı³o¬O·s·|­û¨D±Ïªº¥DÃD!²q´ú±¡¹Ò¨ÃÀ°¦£°µ½d¨Ò!
½Ð¦U¦ì«e½ú«ü¾É!
Sheet_1¬Oµ²ªGªí:
1.jpg
2022-10-24 14:02


Sheet_3.4.7¬O¨Ó·½ªí:
3.jpg
2022-10-24 14:13


Sheet_2.5.6¤]¬O¨Ó·½ªí:
2.jpg
2022-10-24 14:11


½d¨Ò_20221024.zip (896.05 KB)

¦^´_ 2# singo1232001

ÁÂÁ«e½ú«ü¾É
¦r¨å(±í¤ÀÃþ)§PÂ_¦r!¦³·N«ä³á!·Q¾Ç!
«á¾ÇÁÙ¨S¬ã¨s«e½úªº¦^ÂÐ!§ä¤u§@ªÅÀɮɶ¡!©ú¤ÑÄ~Äò¾Ç²ß!
ÁÂÁÂ!

TOP

¦^´_ 2# singo1232001


    ÁÂÁ«e½ú«ü¾É
«e½ú¼F®`!
¤§«e¦³ÂsÄý³o¥DÃD:
http://forum.twbts.com/viewthrea ... a=pageD3&page=3
·í®É³£Á٬ݤ£À´,ÁÂÁ«e½ú¦b¦¹©««ü¾É!
°õ¦æ®É¶¡¶Wµu!
1.jpg
2022-10-25 10:10


¥H¤U¾Ç²ß¨ìªº¤ß±oµù¸Ñ¤@¤U! ¦p¦³«_¥Ç½Ð¨£½Ì!
½Ð«e½ú«ü¥¿¨Ã¦A«ü¾É! ÁÂÁÂ
Option Explicit
Sub °õ¦æ³o­Ó()
Dim T
'¡ô«Å§iÅܼÆ
T = Timer
'¡ô¥OT¬O·í¤U®É¶¡ @2
Sheets("¤u§@ªí_1").Range("F:k").ClearContents
'¡ô²M°£ªí_1  "F:k"Äæ¦ìÀx¦s®æ¤º®e
Call test
'¡ô°õ¦æ°Æµ{¦¡ test()
Call test2
'¡ô°õ¦æ°Æµ{¦¡ test2()

MsgBox Timer - T & " ’"
'¡ô¸õ¥X´£¥Üµ¡!Åã¥Ü ³Ì«á®É¶¡ - ­è­èªº ·í¤U®É¶¡ @2
End Sub
Sub test()
Dim v As String, ve As String, sr, d, S, r, i, h, rr
'¡ô«Å§iÅܼÆ
sr = Split("¤u§@ªí_3,¤u§@ªí_4,¤u§@ªí_7", ",")  '@1
'¡ô¥O sr¬O¤@ºû°}¦C!3­Ó±N³Q·j´Mªº¸ê®Æªí¦WºÙ¥H","²Å¸¹¤À­Ó³Î ­Ë¤Jsr
'³o¬O­n³Q ¤u§@ªí_1(¥H¤UºÙªí_1) AÄæ·j´M¨ú¹ïÀ³­Èªº3­Ó¤u§@ªí!

Set d = CreateObject("scripting.dictionary")
'¡ô¥Od¬O¦r¨å
Set S = Sheets("¤u§@ªí_1")
'¡ô¥Os ¬Oª«¥ó "ªí_1" ¤u§@ªí
r = S.Cells(Rows.Count, 1).End(3).Row
'¡ô¥Or¬Oªí_1 AÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
For i = 1 To r
'¡ô³]¶¶°j°é±q1 ¨ì AÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
   v = S.Cells(i, 1).Value
   '¡ô¥Ov¬O ªí_1 ªº°j°éAÄæÀx¦s®æ­È
   ve = Left(v, 1)
   '¡ô¥Ove ¬O AÄæÀx¦s®æ­Èªº³Ì¥ªÃ䪺¦r¤¸
   If d.exists(ve) = False Then
   '¡ô¦pªGd¦r¨å¸Ì¨S¦³³o­Ó¦r¤¸ªºkey
      Set d(ve) = CreateObject("scripting.dictionary")
      '¡ô­Y±ø¥ó¦¨¥ß!´N±N¦¹¦r¤¸¬°key,item¬O¤@­Ód¦r¨å¤¤ªº¦r¨å
   End If
   d(ve)(v) = S.Cells(i, 1).Row
    '¡ô¥O d¦r¨å¤¤ªº¦r¨å d(ve)­Ë¤J AÄæÀx¦s®æ­È¬°key!Àx¦s®æ¦C¦ì¬°item
Next
ReDim ar(1 To r, 0 To 2) As String
'¡ô«Å§i¦r¦êar °}¦CªºÁa¦V½d³ò¬O1 ¨ì ªí_1 AÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
'¾î¦V½d³ò¬O0 ¨ì2
For h = 0 To 2
'¡ô³]¥~¶¶°j°é±q0 ¨ì2
   Set S = Sheets(sr(h))
   '¡ô¥Os¬O ³Q·j´Mªº¸ê®Æªí @1
   rr = S.Cells(Rows.Count, 1).End(3).Row
   '¡ô¥Orr¬O ³Q·j´Mªí AÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
   For i = 1 To rr
   '¡ô³]¤º¶¶°j°é±q1 ¨ì³Q·jªí AÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
      ve = S.Cells(i, 1).Value
      '¡ô¥Ove¬O³Q·jªí ªº°j°éAÄæÀx¦s®æ­È(ÃöÁä¦r)
      ar(d(Left(ve, 1))(ve), h) = S.Cells(i, 3).Value
      '¡ô¥H ³Q·jªíÃöÁä¦r³Ì¥ªÃä¦r¤¸¬°key ¬d¹îd¦r¨å¤¤¹ïÀ³ªºitem¦r¨å
      ',³o¥H¦r­º¬°¦W(key)ªº¦r¨å¤¤¦r¨å,¥H³Q·jªíÃöÁä¦r¬d¹î¹ïÀ³ªº¦C¼Æ(ªí_1),
      '¬°ar°}¦Cªº¦C¦ì,h¬O¸ÓÃöÁä¦r·j´M¨ì­Èªº«ü©wÄæ¦ì
      '¡ô¤]´N¬O§â ³Q·jªíÃöÁä¦r·j´M¨ìªº­È ©ñ¨ì¦r¨å°O¿ýªºar°}¦C¦C¦ì¤¤

   Next
Next
Sheets("¤u§@ªí_1").Cells(1, 6).Resize(r, 3) = ar
'¡ô±N ar°}¦Cªº­È±qªí_1ªº[F1]¶}©l¶K¤J
End Sub
Sub test2()
Dim v As String, ve As String, sr, d, S, r, i, h, rr
'¡ô«Å§iÅܼÆ
sr = Split("¤u§@ªí_2,¤u§@ªí_5,¤u§@ªí_6", ",")
'¡ô¥O sr¬O¤@ºû°}¦C!3­Ó±N³Q·j´Mªº¸ê®Æªí¦WºÙ¥H","²Å¸¹¤À­Ó³Î ­Ë¤Jsr
'³o¬O­n³Q ¤u§@ªí_1(¥H¤UºÙªí_1) DÄæ·j´M¨ú¹ïÀ³­Èªº3­Ó¤u§@ªí!

Set d = CreateObject("scripting.dictionary")
'¡ô¥Od¬O¦r¨å
Set S = Sheets("¤u§@ªí_1")
'¡ô¥Os ¬Oª«¥ó ªí_1 ¤u§@ªí
r = S.Cells(Rows.Count, 4).End(3).Row
'¡ô¥Or¬Oªí_1 DÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
For i = 1 To r
'¡ô³]¶¶°j°é±q1 ¨ì DÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
   v = S.Cells(i, 4).Value
   '¡ô¥Ov¬O ªí_1 ªº°j°éDÄæÀx¦s®æ­È
   ve = Left(v, 1)
   '¡ô¥Ove ¬O DÄæÀx¦s®æ­Èªº³Ì¥ªÃ䪺¦r¤¸
   If d.exists(ve) = False Then
   '¡ô¦pªGd¦r¨å¸Ì¨S¦³³o­Ó¦r¤¸ªºkey
      Set d(ve) = CreateObject("scripting.dictionary")
      '¡ô­Y±ø¥ó¦¨¥ß!´N±N¦¹¦r¤¸¬°key,item¬O¤@­Ód¦r¨å¤¤ªº¦r¨å
   End If
   d(ve)(v) = S.Cells(i, 4).Row
   '¡ô¥O d¦r¨å¤¤ªº¦r¨å d(ve)­Ë¤J DÄæÀx¦s®æ­È¬°key!Àx¦s®æ¦C¦ì¬°item
Next
ReDim ar(1 To r, 0 To 2) As String
'¡ô«Å§i¦r¦êar °}¦CªºÁa¦V½d³ò¬O1 ¨ì ªí_1 DÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
'¾î¦V½d³ò¬O0 ¨ì2
For h = 0 To 2
'¡ô³]¥~¶¶°j°é±q0 ¨ì2
   Set S = Sheets(sr(h))
   '¡ô¥Os¬O ³Q·j´Mªº¸ê®Æªí @1
   rr = S.Cells(Rows.Count, 1).End(3).Row
   '¡ô¥Orr¬O ³Q·j´Mªí AÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
   For i = 1 To rr
   '¡ô³]¤º¶¶°j°é±q1 ¨ì³Q·jªí AÄ榳¤º®eªºÀx¦s®æ³Ì«á¤@¦C¼Æ
      ve = S.Cells(i, 1).Value
      '¡ô¥Ove¬O³Q·jªí ªº°j°éAÄæÀx¦s®æ­È(ÃöÁä¦r)
      ar(d(Left(ve, 1))(ve), h) = S.Cells(i, 3).Value
      '¡ô¥H ³Q·jªíÃöÁä¦r³Ì¥ªÃä¦r¤¸¬°key ¬d¹îd¦r¨å¤¤¹ïÀ³ªºitem¦r¨å
      ',³o¥H¦r­º¬°¦W(key)ªº¦r¨å¤¤¦r¨å,¥H³Q·jªíÃöÁä¦r¬d¹î¹ïÀ³ªº¦C¼Æ(ªí_1),
      '¬°ar°}¦Cªº¦C¦ì,h¬O¸ÓÃöÁä¦r·j´M¨ì­Èªº«ü©wÄæ¦ì
      '¡ô¤]´N¬O§â ³Q·jªíÃöÁä¦r·j´M¨ìªº­È ©ñ¨ì¦r¨å°O¿ýªºar°}¦C¦C¦ì¤¤

   Next
Next
Sheets("¤u§@ªí_1").Cells(1, 9).Resize(r, 3) = ar
'¡ô±N ar°}¦Cªº­È±qªí_1ªº[I1]¶}©l¶K¤J
End Sub

TOP

¦^´_ 6# ­ã´£³¡ªL
ÁÂÁ«e½ú«ü¾É!
2.jpg
2022-10-28 16:42


¥H¤U¾Ç²ß¨ìªº¤ß±oµù¸Ñ¤@¤U! ½Ð«e½ú«ü¥¿¨Ã¦A«ü¾É! ÁÂÁÂ
Option Explicit
Sub TEST_A1()
Dim Arr, Brr, Crr, Sn, T$, xD, R1&, R2&, Rx&, i&, j%, c%, W, S
'¡ô«Å§iÅܼÆ
W = Timer
Set xD = CreateObject("scripting.dictionary")
'¡ô¥OxD¬O¦r¨å
R1 = [¤u§@ªí_1!A65536].End(xlUp).Row
'¡ô¥OR1¬O ªí_1 AÄæ³Ì«á¤@¦³¤º®eÀx¦s®æ¦C¼Æ
R2 = [¤u§@ªí_1!D65536].End(xlUp).Row
'¡ô¥OR2¬O ªí_1 AÄæ³Ì«á¤@¦³¤º®eÀx¦s®æ¦C¼Æ
Rx = R1:  If R2 > R1 Then Rx = R2
'¡ô¨úA,D¨âÄæ³Ì¤j¦C¼Æ
Arr = Sheets("¤u§@ªí_1").Range("A1:D" & Rx)
'¡ô¥OArr¬O°}¦C!­Ë¤JA,D¨âÄ椧¶¡¦³¤º®eÀx¦s®æ³Ì¤p¤è¥¿½d³òÀx¦s®æªº­È
For i = 1 To Rx
'¡ô³]¶¶°j°é!±q1 ¨ì A,D¨âÄæ³Ì¤j¦C¼Æ
    If Arr(i, 1) <> "" Then xD(Arr(i, 1) & "/A") = i
    '¡ô¦pªG°j°é¦C Arr°}¦C²Ä1 Ä檺­È¤£¬OªÅ¦r¤¸! ´N±N¸Ó­È+"/A"¬°key,item¬O°j°é¼Æ '@@
    If Arr(i, 4) <> "" Then xD(Arr(i, 4) & "/D") = i
    '¡ô¦pªG°j°é¦C Arr°}¦C²Ä4 Ä檺­È¤£¬OªÅ¦r¤¸! ´N±N¸Ó­È+"/D"¬°key,item¬O°j°é¼Æ '@@
Next i
ReDim Crr(1 To Rx, 1 To 6)
'¡ô«Å§i Crr°}¦Cªº½d³ò!Áa¦V:1¨ì A,D¨âÄæ³Ì¤j¦C¼Æ!¾î¦V:1¨ì6Äæ
For Each S In Split("¤u§@ªí_3/¤u§@ªí_4/¤u§@ªí_7/¤u§@ªí_2/¤u§@ªí_5/¤u§@ªí_6", "/")
'¡ô³]¥~¶¶°j°é!¥OS¬O °}¦C¸Ìªº¤@­û(°}¦C:ªø¦r¦ê¥H "/" ²Å¸¹¤À³Î¦¨6­Ó¤¸¯À)
    R1 = Sheets(S & "").[a65536].End(xlUp).Row
    '¡ô¥OR1¬O¥~°j°é S+ªÅ¦r¤¸¦r¦ê «ü¦Vªº¤u§@ªíAÄ榳¤º®eªºÀx¦s®æ³Ì«á¦C¼Æ
    Brr = Sheets(S & "").Range("A1:C" & R1)
    '¡ô¥OBrr¬O°}¦C!­Ë¤J¥~°j°é S+ªÅ¦r¤¸¦r¦ê «ü¦Vªº¤u§@ªí
    '[A1]¨ìCÄ榳¤º®eªºÀx¦s®æ³Ì«á¦C¼ÆÀx¦s®æ¤§¶¡!³Ì¤p¤è¥¿½d³òÀx¦s®æªº­È
    c = c + 1
    '¡ô¥Oªì©l­È¬O1ªºc!¶}©l²Ö¥[1
    T = IIf(c > 3, "/D", "/A")
    '¡ô¥OT :¦pªGc¤j©ó3 T¬O "/D"¦r¦ê !§_«hT ¬O "/A"¦r¦ê
    For i = 1 To R1
    '¡ô³]¤º¶¶°j°é!i±q1 ¨ì R1
        R2 = xD(Brr(i, 1) & T)
        '¡ô¥OR2¬O(¥~°j°éBrr°}¦C¸Ìªº²Ä1Äæ­È»P T¦r¦êÅܼƲզXªº¦r¦ê²Õ)
       '¨ìxD¦r¨å¬d @@¼Ð¥Ü³Bªº°j°é¼Æ(¤]¬OArrÃöÁä¦r©Ò¦bªº¦C¼Æ)
        If R2 > 0 Then Crr(R2, c) = Brr(i, 3)
       '¡ô¦pªGÃöÁä¦r©Ò¦bªº¦C¼Æ¦³¬d¨ì!´N¥OCrr°}¦CªºArrÃöÁä¦r¦C,c²Ö¥[ªºÄæ¼Æ
        '¬O¨C­ÓBrr°}¦C¸Ìªº¤º°j°é¼Æ¦C/²Ä3Ä檺­È

    Next i
Next S
Sheets("¤u§@ªí_1").[f1].Resize(Rx, 6) = Crr
'¡ôCrr°}¦C¸Ìªº­È±q ªí_1ªº [f1]¶}©l¶K¤J
MsgBox Timer - W & " ’"
End Sub

TOP

¥»©«³Ì«á¥Ñ Andy2483 ©ó 2022-11-24 10:11 ½s¿è

¦^´_ 8# 97forum


    ÁÂÁ«e½ú
¥H«e¾Ç²ß¤@©««e½ú­Ìªºµ{¦¡½X,¬Ý>¬d>²z¸Ñ ­nªá¨â¤Ñªº®É¶¡,¦h¶K¤§«á¥u­n¤@¤Ñ
¦Û¤v®M¥Î³ÌÃø!
«Ü°ª¿³¥i¥H¸ò«e½ú­Ì¤@°_¬ã¨s³oªù¾Ç°Ý
µ{¦¡½Xµù¸Ñ»¡©ú¤]¬O­n¦Ò¼{½×¾Â¥ß³õ.¤À¤o...,¦Ó¥B§Æ±æ¨S¦³»~¾É!

TOP

        ÀR«ä¦Û¦b : ¤£­n¤p¬Ý¦Û¤v¡A¦]¬°¤H¦³µL­­ªº¥i¯à¡C
ªð¦^¦Cªí ¤W¤@¥DÃD