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

[µo°Ý] ¥Î¤Ä¿ïÅýÀx¦s®æ¤£¯àµ¥©ó

[µo°Ý] ¥Î¤Ä¿ïÅýÀx¦s®æ¤£¯àµ¥©ó

§Ú·Q°Ý¤@­Ó°ÝÃD

¦pªG¦A¤ý¤p¥­  ªº¬P´Á¤@¦­¤W¥´¤Äªº¸Ü (¹Ï²Ä¤G±i)

¨º¬O§_¥i¥HÅý(²Ä¤@±i)¬õ¦â°é°é¤º¤£¯à¥´¥X¤ý¤p¥­³o¤T­Ó¦r
©Î¬O¥´¥X¤ý¤p¥­¤T­Ó¦r«á·|¥X²{ĵ¥Ü°T®§

¦pªG¥H¤j½Òªí¨Ó±Æªº¸Ü¡A¦n¹³«Ü¦hªF¦è³£¥i¥HÅܦ¨¤ñ¸û²³æ
¥«¤W§Úª¾¹D«Ü¦h²{¦¨ªº¡A¦ý¬O¹³C»y¨¥¸òexcelªºµ{¦¡½X´N¤£¤@¼Ë¤F
¤£¹LÁÙ¬OÁÂÁ´£¨Ñ³o­Óµ{¦¡½X
§Ú¨ÓºCºC¬Ý

TOP

¥»©«³Ì«á¥Ñ yen956 ©ó 2014-2-8 17:55 ½s¿è

¦]¬°µLÅv¤U¸üÀÉ®×, ¬G¥u¦n¦Û¤w¥t¥~ºc·Q,
®Ú¾Ú²Ä¤@½g¤å³¹, ªO¥D¦n¹³·Ç³Æª½±µ
¦b¯Z¯Å½Òªí¤W±Æ½Ò, ³o©ö±Æ¥X¬Y±Ð®v
¦b¦P®É¬q¦b¤£¦P¨â¯Z±Â½Òªº½Òªí, ©yÁקK

¹q¸£±Æ½Ò¬O¤@¤j¤uµ{, ¥«¤W³\¦h²{¦¨ªº(ªþ­ì¥N½X), ¥i°Ñ¦Ò°Ñ¬Ý¬Ý!
¦p¡G
²©ö¹q¸£±Æ½Ò¨t²Î¡i©P¤å¥ú¡j
https://www.google.com.tw/url?sa ... q-s4qn92Ls_9Xd0In2w
ªþ­ìµ{¦¡¦Cªí(¸`¿ý)
  1. #include <stdio.h>

  2. FILE *fp;                                     /* «Å§iÀɮ׫ü¼Ð,´£¨Ñ¶}±Ò¦s©ñ¿é¥Xµ²ªGªºÀÉ®× */
  3. int mask_array[8][5];                         /* «Å§imask_array°}¦C,´£¨Ñµ{¦¡§PÂ_¥i¨Ñ±Æ½Òªº®É¬q */
  4. int data_array[20][12];                       /* «Å§idata_array°}¦C,´£¨Ñ¦s©ñ¿é¤J¸ê®Æ */

  5. struct class_unit {                           /* «Å§iclass_unitªºµ²ºc,´£¨Ñ¦s©ñ: */
  6.   int teacher_level;                          /* ±Ð®v¾µ¥(teacher_level) */
  7.   int teacher_no;                             /* ±Ð®v½s¸¹(teacher_no) */
  8.   int score_no;                               /* ¬ì¥Ø½s¸¹(score_no) */
  9.   int flag;                                   /* ¥Î¨Ó§PÂ_±Ð«Ç¬O§_¥i¨Ñ±Æ½ÒªººX¼Ð(flag) */
  10. };

  11. struct class_unit classroom[4][8][5];         /* ¥Hclass_unitªºµ²ºc«Å§i¤@­Óclassroom°}¦C */

  12. void clear_classroom() {                      /* clear_classroom()°Æµ{¦¡ */
  13.   int i, j, k;                                /* ¥Î¨Ó³]©wclassroom°}¦Cªºªì©l­È¬°0 */

  14.   for(i=0; i<4; i++) {
  15.     for(j=0; j<8; j++) {
  16.       for(k=0; k<5; k++) {
  17.         classroom[i][j][k].teacher_level=0;   /* ³]©w±Ð®v¾µ¥(teacher_level)¬°0 */
  18.         classroom[i][j][k].teacher_no=0;      /* ³]©w±Ð®v½s¸¹(teacher_no)¬°0 */
  19.         classroom[i][j][k].score_no=0;        /* ³]©w¬ì¥Ø½s¸¹(score_no)¬°0 */
  20.         classroom[i][j][k].flag=0;            /* ³]©w¥Î¨Ó§PÂ_±Ð«Ç¬O§_¥i¨Ñ±Æ½ÒªººX¼Ð(flag)¬°0 */
  21.       }
  22.     }
  23.   }
  24. }
½Æ»s¥N½X

TOP

  1. 'Sheets("¥i±Æ½Ò®É¬q")
  2.    
  3. Private Sub CommandButton1_Click()
  4.    Dim x, y As Object
  5.    Dim obj As OLEObject
  6.    Dim c²×ÂI, r²×ÂI, i, j, k As Integer
  7.    Dim tf As Boolean
  8.    Set x = Sheets("¥i±Æ½Ò®É¬q")
  9.    Set y = Sheets("¤j½Òªí")
  10.    
  11.    x.Range("B50:R100").ClearContents
  12.    r²×ÂI = x.[A4].End(xlDown).Row
  13.    c²×ÂI = x.[B4].End(xlToRight).Column
  14.    For C = 2 To c²×ÂI
  15.       k = 49
  16.       For r = 4 To r²×ÂI
  17.          If x.Cells(r, C) Then
  18.             k = k + 1
  19.             x.Cells(k, C) = x.Cells(r, 1)
  20.          End If
  21.       Next
  22.    Next
  23.    
  24.    j = 2
  25.    For Each obj In y.OLEObjects
  26.       If TypeOf obj.Object Is MSForms.ComboBox Then
  27.          obj.Object.Clear
  28.          c1 = x.Cells(49, j).End(xlDown).Row
  29.          For i = 50 To c1
  30.             obj.Object.AddItem x.Cells(i, j)
  31.          Next
  32.          j = j + 1
  33.          If j > j1 Then Exit Sub
  34.       End If
  35.    Next
  36. End Sub
½Æ»s¥N½X
¹Ï¡G¥i±Æ½Ò®É¬q(°õ¦æµ²ªG)
  1. 'Sheets("¤j½Òªí")
  2. Private Sub ComboBox1_Change()
  3.    Dim x, y As Object
  4.    Set x = Sheets("¤j½Òªí")
  5.    Set y = Sheets("¥i±Æ½Ò®É¬q")
  6.    
  7.    c1 = 3
  8.    c2 = 22
  9.    If ActiveCell.Column < r1 Or ActiveCell.Column > r2 Then Exit Sub
  10.    
  11.    r1 = 5
  12.    r2 = 10
  13.    If ActiveCell.Row < c1 Or ActiveCell.Row > c2 Then Exit Sub
  14.    
  15.    ActiveCell = ComboBox1.Text
  16. End Sub

  17. Private Sub ComboBox2_Change()
  18.    Dim x, y As Object
  19.    Set x = Sheets("¤j½Òªí")
  20.    Set y = Sheets("¥i±Æ½Ò®É¬q")
  21.    
  22.    c1 = 23
  23.    c2 = 38
  24.    If ActiveCell.Column < r1 Or ActiveCell.Column > r2 Then Exit Sub
  25.    
  26.    r1 = 5
  27.    r2 = 10
  28.    If ActiveCell.Row < c1 Or ActiveCell.Row > c2 Then Exit Sub
  29.    
  30.    ActiveCell = ComboBox2.Text
  31. End Sub

  32. '¥H¤U½Ð¦Û¦æ½Æ»s, ¦Û¦æ§ï
½Æ»s¥N½X
¹Ï¡G¤j½Òªí(°õ¦æµ²ªG)

TOP

¥i¤£¥i¥H½Ðª©¥D¤@¤@¸ÑÄÀ¨C¤@¦æ
¦]¬°§ÚÁ٭豵IJexcel vba
©Ò¥H¤j³¡¤À³£¤£¤Ó¤F¸Ñ¬°¤°»ò­n³o¼Ë°µ
ÁÂÁ¦^§Úªº¨C­Ó¤H

TOP

¥»©«³Ì«á¥Ñ Hsieh ©ó 2014-2-10 14:56 ½s¿è

¦^´_ 4# j88141
½ÒªíÂú§Î¤u§@ªí¼Ò²Õ
  1. Private Sub Worksheet_Change(ByVal Target As Range)
  2. If Target.Count > 1 Then Exit Sub
  3. Application.EnableEvents = False
  4. k = Target.Column
  5. r = Target.Row
  6. w = Cells(2, k)
  7. t = IIf(r <= 22, "¦­¤W", IIf(r > 22 And r <= 38, "¤U¤È", "±ß¤W"))
  8. If Target<>"" And Check(w & t, Target) > 0 Then MsgBox "¸Ó±Ð®v¦¹®É¬q¤£±Æ½Ò": Target.ClearContents
  9. Application.EnableEvents = True
  10. End Sub
  11. Function Check(mystr$, MyVal)
  12. Dim Ob As Shape, A As Range, Dic As Object
  13. Set Dic = CreateObject("Scripting.Dictionary")
  14. With ¤u§@ªí1
  15. For Each Ob In .Shapes
  16.    If Ob.OLEFormat.Object.Value = 1 Then
  17.       Set A = Ob.TopLeftCell
  18.       w = .Cells(1, A.Column).MergeArea(1)
  19.       t = .Cells(3, A.Column)
  20.       Dic(w & t) = IIf(Dic(w & t) = "", .Cells(A.Row, 1), Dic(w & t) & "," & .Cells(A.Row, 1))
  21.    End If
  22. Next
  23. Check = InStr(Dic(mystr), MyVal)
  24. End With
  25. End Function
½Æ»s¥N½X
¾Ç®üµL²P_¤£®¢¤U°Ý

TOP

¦n
§Ú¨Ó¸Õ¸Õ¬Ý
ÁÂÁª©¥D¦^´_

TOP

¥»©«³Ì«á¥Ñ GBKEE ©ó 2014-2-7 17:39 ½s¿è

¦^´_ 4# j88141
¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Private Sub Workbook_Open()    'ThisWorkbook ¼Ò²Õªºµ{¦¡½X,¶}Àɮɦ۰ʰõ¦æ
  3.     Dim xWeek, xM, Rng(0 To 2) As Range, i As Integer, ii As Integer
  4.     For Each xM In ActiveWorkbook.Names
  5.         xM.Delete
  6.     Next
  7.     xWeek = Split("¬P´Á¤@,¬P´Á¤G,¬P´Á¤T,¬P´Á¥|,¬P´Á¤­", ",")
  8.     xM = Split("¦­¤W,¤U¤È,±ß¤W", ",")
  9.    
  10.     With Sheets("½ÒªíÂú§Î")
  11.         Set Rng(0) = .Range("D3:D18")       '¦­¤W®É¬q  '¦p¦³¤£¹ï½Ð¦Û¦æ­×§ï
  12.         Set Rng(1) = .Range("D19:D34")      '¤U¤È®É¬q
  13.         Set Rng(2) = .Range("D35:D42")      '±ß¤W®É¬q
  14.         For i = 0 To 4
  15.             For ii = 0 To 2
  16.                 Rng(ii).Offset(, i).Name = xWeek(i) & xM(ii)
  17.             Next
  18.         Next
  19.     End With
  20. End Sub
½Æ»s¥N½X
"½ÒªíÂú§Î" ¤u§@ªí¼Ò²Õªºµ{¦¡½X
  1. Option Explicit Private
  2. Sub Worksheet_Change(ByVal Target As Range)
  3.     Application.EnableEvents = False
  4.     If ®É¬q(Target) Then Target = ""
  5.     Application.EnableEvents = True
  6. End Sub
  7. Private Function ®É¬q(xRng As Range) As Boolean   '¶Ç¦^ False ¦¨¬° 0 ¡A¦Ó True ¦¨¬° -1
  8.     Dim xR As String, N As Name, C As CheckBox
  9.     For Each N In ActiveWorkbook.Names
  10.         If Not Application.Intersect(Range(N), xRng) Is Nothing Then
  11.             xR = N.Name              '¨ú±o ¬P´Á¤W¤U±ßªº®É¬q
  12.             Exit For
  13.         End If
  14.     Next
  15.     With Sheets("¦Ñ®v¤£±Æ½Ò®É¬q")
  16.         For Each C In .CheckBoxes
  17.            If .Cells(C.TopLeftCell.Row, 1) = xRng And C = 1 Then
  18.                If xR = .Cells(1, C.TopLeftCell.Column).MergeArea.Cells(1) & C.TopLeftCell.End(xlUp) Then
  19.                     '¬P´Áªº®É¬q    .Cells(1, C.TopLeftCell.Column).MergeArea.Cells(1)
  20.                     '¤W¤U±ßªº®É¬q  C.TopLeftCell.End(xlUp)
  21.                     ®É¬q = True
  22.                     MsgBox xRng & vbLf & xR & vbLf & "¤£±Æ½Òµ{"
  23.                     Exit For
  24.                 End If
  25.            End If
  26.         Next
  27.     End With
  28. End Function
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦]¬°§Ú²{¦b¬O·Q°µ±Æ½Òªí
¦ý¦Ñ®vªº¤£±Æ½Ò®É¬q¬O»Ý­n¤Ä¿ïªº «á­±ÁÙ¦³¬P´Á¤G ... ¬P´Á¤T...(ÁÙ¥¼°µ®Ö¨ú¤è¶ô)
©Ò¥H¤~·|¦b ªí¤G ªº¬P´Á¤@¦­¤W¤¤©ñ¸m   ¤ý¤p¥­  ªº®Ö¨ú¤è¶ô
¨Ã¥B¤Ä¿ï«á  ¤£Åýªí¤@ªº¬P´Á¤@¦­¤W¥X²{¤ý¤p¥­

TOP

¤£¦n·N«ä   ªþ¤WÀÉ®× ªþ¥ó.rar (40.45 KB)

TOP

        ÀR«ä¦Û¦b : ¤H¥Í³Ì¤jªº¦¨´N¬O±q¥¢±Ñ¤¤¯¸°_¨Ó¡C
ªð¦^¦Cªí ¤W¤@¥DÃD