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

[µo°Ý] ¦Ò¶ÔªíVBAÃøÃD¨D§U

¦^´_ 10# lpk187


    ¤Ó·PÁ¤F, §Ú·|¾Ç²ß·í¤¤¹B¥Î, ¦³³Ò¤j¥q:'( ¬°§Ú¸Ñ¨M¤FÀYµh¦h¤ëªº°ÝÃD!

TOP

¦^´_ 11# missbb

§Úµo²{¡A¥i¯à§A·íªì¼g³oÀɮ׮ɴ¿²£¥Í·¸¦ì¦Ó¾É­PÀÉ®×Åܫܤj¡A¨Ó¨ì1.7M
¤w¸gÀ°§A³B²z¦n¤F(¤£¹Lµe­±¦³ÂI¤£¹³­ì¨Óªº¼Ë¤l)¡A¥t¥~·s¼W¥[¤@¨Ç¥\¯à¡¨²M°£¸ê®Æ¡§ ¤Î ¡¨¦Û°Ê¶ñ¼g¤é´Á¡§¥H¤Îµ{¦¡¸Ñ»¡¡A¥H§Q§A©úÁAµ{¦¡ªº°Ê§@
   
¦Ò¶Ôªí 20150815 v5.rar (44.95 KB)

TOP

¦^´_ 12# lpk187

¬O§r, ¥Î¨ç¼Æ¥OFILE¹B§@«ÜºC¤~¥ÎVBA, ·PÁ²Ӥߪº¼W­È:'(

TOP

¦^´_ 13# missbb
¦r¨åª«¥ó,¤]¥i¸Õ¸Õ¬Ý.
  1. Option Explicit
  2. Sub Ex()
  3.     Dim xDATE As Range, i, Rng As Range
  4.     Dim D As Object, K, X As Long, Ar As Variant
  5.     Set xDATE = Sheets("Attendance Report").[J3]  '¿é¤J³øªí­º¤é¤§«e1¤é¤é´Á ªºÀx¦s®æ
  6.     With Sheets("data")  '¸ê®Æ¤u§@ªí
  7.         Set Rng = .[D4] '¸ê®Æ¶}¨ÏªºÀx¦s®æ
  8.         X = 0
  9.         Do While Rng <> ""
  10.             Set D = CreateObject("SCRIPTING.DICTIONARY")  '³]¥ßÅÜ¼Æ :¦r¨åª«¥ó
  11.             i = 1
  12.             Do While Rng.Offset(i - 1) = Rng  'Employee  ¤W¤U¦C¬Û¦P
  13.                 With Rng.Offset(i - 1)
  14.                     If D.EXISTS(.Range("C1").Value) Then    '¦pªG¦b Dictionary ª«¥ó¤¤«ü©wªºÃöÁä¦r¦s¦b¡A¶Ç¦^ True¡A
  15.                         D(.Range("C1").Value) = D(.Range("C1").Value) & "," & .Range("D1").Text
  16.                     Else
  17.                         D(.Range("C1").Value) = .Range("D1").Text
  18.                         '.Range("C1").Value ¬°¤é´Á­È
  19.                     End If
  20.                  End With
  21.                 i = i + 1
  22.             Loop
  23.             For Each K In D.KEYS  'Keys ¤èªk ¶Ç¦^¤@­Ó°}¦C¡A¸Ó°}¦C¥]§t¤@­Ó Dictionary ª«¥ó¤¤ªº¥þ³¡¬J¦sªºªºÃöÁä¦r¡C
  24.                 Ar = Split(D(K), ",") 'Keysªº¤º®e
  25.                 With xDATE.Offset(, K - xDATE)  'k ¬°¤é´Á­È
  26.                     .Parent.Cells(.Row + X + 1, "a") = Rng.Range("b1").Value
  27.                     .Parent.Cells(.Row + X + 1, "d").Resize(20) = Rng
  28.                     If UBound(Ar) = 1 Then
  29.                         .Cells(X + 3) = Ar(0)
  30.                         .Cells(X + 4) = Ar(1)
  31.                     ElseIf UBound(Ar) = 2 Then
  32.                         .Cells(X + 3) = Ar(0)
  33.                         .Cells(X + 4) = Ar(2)
  34.                         .Cells(X + 10) = Ar(1)
  35.                     ElseIf UBound(Ar) = 3 Then
  36.                         .Cells(X + 3) = Ar(0)
  37.                         .Cells(X + 4) = Ar(3)
  38.                         .Cells(X + 10) = Ar(1)
  39.                         .Cells(X + 11) = Ar(2)
  40.                     ElseIf UBound(Ar) = 4 Then
  41.                         .Cells(X + 3) = Ar(0)
  42.                         .Cells(X + 4) = Ar(4)
  43.                         .Cells(X + 10) = Ar(1)
  44.                         .Cells(X + 11) = Ar(2)
  45.                     End If
  46.                 End With
  47.             Next
  48.             X = X + 20
  49.             Set Rng = Rng.Offset(i)
  50.         Loop
  51.     End With
  52. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 14# GBKEE
·Q½Ð±Ð±N("A4:AP23") COPY µ¥¦p­û¤u¤H¼Æªº¦¸¼Æ, ¦ý¥X¿ù, ¬O¬Æ»ò­ì¦]?
  1. [code]Sub COPY_FORMAT()

  2. Dim i As Integer

  3.     Worksheets("attendance report").Activate
  4.    
  5.     QQQQ = Worksheets("ee data").Cells(Rows.Count, "b").End(xlUp).Row
  6.    
  7.     ActiveSheet.Range("A4:AP23").Select
  8.    
  9.     Selection.Copy
  10.    
  11. For i = 1 To QQQQ
  12.    
  13.     ActiveSheet.Range("A" & 1 + i * 20).Select
  14.     ActiveSheet.Paste
  15.   
  16. Next i
  17. End Sub

  18.         


  19.    
½Æ»s¥N½X
[/code]

TOP

¦^´_ 15# missbb

ActiveSheet.Range("A4:AP23").Select
   
    Selection.Copy¦¸<<³o¸Ì¸Ì¬O¿ï¾Ü¤W­±½d³òA4:AP23»s½d³òªº½Æ»s
¦ý¤U­±ªº¬õ¦â³¡¥÷«o§â¤W­±ªº¿ï¾Ü§ó´«±¼¤F¡A©Ò¥H¥¦¥u¯à¶K¤@¦¸¡A²Ä¤G¦¸´N·|¥X¿ù¤F¡I
For i = 1 To QQQQ
     ActiveSheet.Range("A" & 1 + i * 20).Select
    ActiveSheet.Paste
  Next i
­n½Æ»s¶K¤W¡A¥u­n¤@¥y´N¥i¸Ñ¨M¡A¦p¤U½d¨Ò¡G
  1. Sub COPY_FORMAT()
  2. Dim i As Integer
  3.     Worksheets("attendance report").Activate
  4.     QQQQ = Worksheets("ee data").Cells(Rows.Count, "b").End(xlUp).Row
  5. For i = 1 To QQQQ
  6.     ActiveSheet.Range("A4:AP23").Copy Range("A" & 1 + i * 20)
  7. Next i
  8. End Sub
½Æ»s¥N½X

TOP

¦^´_ 16# lpk187
¦hÁ«ü¾É.

TOP

¦^´_ 14# GBKEE

·Q°Ý¬°¦ó¥i¥H¨ú±o©m¦W©O?¦]¬°§Ú¦bEE DATA¤ÎEE¤º³£§ä¤£¨ì¹ïÀ³ªºÄæ?

           .Parent.Cells(.Row + X + 1, "d").Resize(20) = Rng

¥t¥i§_±qEE DATA¤@ª©¤º±N­û¤u½s¸¹¤Î³¡ªù³£©ñ¦bATTENDANCE¤º¨ÃÅã¥Ü20¦C©O?

¦³³Ò½ç±Ð!

TOP

¦^´_ 18# missbb

§AªþÀɪºee data ­û¤u¥u¦³2¦ì,¥i¦hÁ|¤@¨Ç.¬Ý¬Ý
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 16# lpk187


        ·PÁ½ç±Ð!

TOP

        ÀR«ä¦Û¦b : ¨ü¤HÂI¤ô¤§®¦¡A¶··í´é¬u¥H³ø¡C
ªð¦^¦Cªí ¤W¤@¥DÃD