±³À°°úÁ¤ ³ªÀÇÇнÀ ¿ÀÇǽºÆÁ °Ë»ö ¹«·á°­ÁÂ
Home ·Î±×ÀΠȸ¿ø°¡ÀÔ °í°´¼¾ÅÍ »çÀÌÆ®¸Ê
¿ÀÇǽºÆ©ÅÍ ±â¾÷ASP¼­ºñ½º > ¹«·á°­ÁÂ
¿¢¼¿ 2000 µû¶óÇϱâ
Ȩ·¯´× ¿¢¼¿ 2000°­ÁÂ
À繫 ÇÔ¼ö °­ÁÂ
¿¢¼¿ 2002 »õ·Î¿î ±â´É
Ȳ±â¼º´ÔÀÇ VBA°­ÁÂ
°û½ÂÁÖ´ÔÀÇ VBAÀ̾߱â
Home > ¹«·á°­Á > ¿¢¼¿
¿¢¼¿, °û½ÂÁÖ´ÔÀÇ ¿ÀÆ©°ø±¸ÇÔ Á¦ÀÛÀ¸·Î ¹è¿öº¸´Â VBA À̾߱â, Excel
  

15. Á¤·Ä µÎ ¹ø° À̾߱â

ÀÚ·á´Ù¿î·Îµå : ¿ÀÆ©°ø±¸ÇÔ015.xls 

¾È³çÇϼ¼¿ä! ¿À´ÃÀº Á¤·Ä¿¡ °üÇÑ µÎ ¹ø° À̾߱âÀÔ´Ï´Ù. À̹ø¿¡´Â ¿¢¼¿ÀÇ Á¤·Ä°ü·Ã ±â´ÉÀ» ¸ÕÀú »ìÆ캸°íÀÚ ÇÕ´Ï´Ù. ´Ü, ¿©±â¼­ ¸»ÇÏ´Â Á¤·ÄÀº ¼¿ ³»¿ëÀ» Á¿ì Á¤·ÄÇÏ´Â °Í°ú´Â ¹«°üÇÕ´Ï´Ù. 

°¡Àå ¸ÕÀú »ìÆ캼 ºÎºÐÀº ¿¢¼¿ÀÇ [µ¥ÀÌÅÍ]¸Þ´º¿¡ ÀÖ´Â [Á¤·Ä]ÀÔ´Ï´Ù. [Á¤·Ä]´ëÈ­»óÀÚ¸¦ º¸¸é ÃÖ´ë 3°³ÀÇ Å°±îÁö Á¤·ÄÇÒ ¼ö ÀÖ½À´Ï´Ù. ÀϹÝÀûÀ¸·Î Á¤·ÄÀ» ÇÏ´Â °æ¿ì ¸ÅÅ©·Î±â·Ï±â°¡ ¾î¶°ÇÑ Äڵ尡 ¸¸µé¾î ³»´ÂÁö »ìÆ캸µµ·Ï ÇÏÁÒ.

¸ÅÅ©·Î ±â·Ï±â°¡ »ý¼ºÇÑ Á¤·ÄÄÚµå
Sub Macro1()
'
' Macro1 Macro
' .ÀÌ(°¡) 2001-12-17¿¡ ±â·ÏÇÑ ¸ÅÅ©·Î
'

'
     Range("A3:C7").Sort Key1:=Range("B4"), Order1:=xlAscending, Key2:=Range( _
          "A4"), Order2:=xlAscending, Key3:=Range("C4"), Order3:=xlDescending, _
          Header:=xlGuess, OrderCustom:=1, MatchCase:=False, Orientation:= _
          xlTopToBottom, DataOption1:=xlSortNormal, DataOption2:=xlSortNormal, _
          DataOption3:=xlSortNormal
End Sub

À§ÀÇ Äڵ忡¼­ º¸¸é Range°³Ã¼¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù. Á¤·ÄÇÒ ¹üÀ§("A3:C7")¸¦ Range°³Ã¼·Î ¼³Á¤ÇÏ°í Sort ¸Þ¼Òµå¸¦ »ç¿ëÇÏ¿´½À´Ï´Ù. ±×¸®°í Key1,Key2,Key3´Â [Á¤·Ä]´ëÈ­»óÀÚÀÇ [ù°±âÁØ], [µÑ°±âÁØ],[¼Â°±âÁØ]À» °¡¸®Å°´Â °É ¾Ë ¼ö ÀÖ½À´Ï´Ù. Order1, Order2, Order3´Â ¿À¸§Â÷¼øÀ¸·Î Á¤·ÄÇÒ °ÍÀΰ¡(xlAscending), ³»¸²Â÷¼øÀ¸·Î Á¤·ÄÇÒ °ÍÀΰ¡(xlDescending)¸¦ ÁöÁ¤ÇÏ´Â ÀμöÀÔ´Ï´Ù. ±×¿Ü Á¤·Ä°ú °ü·ÃÇÑ ¿©·¯ »çÇ×(¸Ó¸®±ÛÇà,¿É¼Ç)µîÀ» ÄÚµå·Î ¸¸µé¾î µÎ¾ú½À´Ï´Ù. Range°³Ã¼ÀÇ Sort¸Þ¼Òµå¿¡ ´ëÇÑ ÀÚ¼¼ÇÑ »çÇ×Àº µµ¿ò¸»À» ÂüÁ¶ÇÏ½Ã±æ ¹Ù¶ø´Ï´Ù(»ç½Ç ¿À´ÃÀÇ º»·ÐÀº ÀÌ°Ô ¾Æ´Ï°Åµç¿ä)

Á¾Á¾ ¿¢»ç¸ð¿¡ ¿Ã¶ó¿À´Â Áú¹®Áß¿¡ 4°³ ÀÌ»óÀÇ Å°¸¦ °¡Áö´Â °æ¿ì ¾î¶»°Ô Á¤·ÄÀ» ÇÏ´Â °¡¸¦ ¹°¾îº¸´Â Áú¹®ÀÌ ÀÖ´õ±º¿ä. ÀÌ·± °æ¿ì Á¤·ÄÀ» µÎ¹ø ÇÏ¸é µÇ´Âµ¥ Á¤·Ä±âÁØÁß ¿ì¼± ¼øÀ§°¡ ³·Àº °ÍÀ» ¸ÕÀú Á¤·ÄÇÑ µÚ, ±× ´ÙÀ½¿¡ Á¤·ÄÇÏ¸é µÈ´Ù°í ÇÏ´õ±º¿ä (Àú´Â ±×·± Á¤·ÄÀ» Çغ¼ ÀÏÀÌ ¾ø¾î ´äº¯ÇϽŠºÐµéÀÇ ¸»¾¸À» ¿Å°å½À´Ï´Ù) 

¿À´ÃÀº ÀÌ·± ¾Ö·Î»çÇ×À» ÀϺγª¸¶ ÇØ°áÇÒ ¼ö ÀÖ´Â Á¤·ÄÀ» ¸¸µé¾î º¸´Â ½Ã°£À» °¡Á®º¸°Ú½À´Ï´Ù. ¹Ì¸® ¸»¾¸µå¸®ÀÚ¸é ¿À´Ã ¸¸µå´Â ±â´ÉÀº 4°³ ÀÌ»óÀÇ ¿­À» Á¤·ÄÇÒ ¼ö ÀÖ½À´Ï´Ù. Å×½ºÆ®¸¦ ¸ðµÎ Çغ¸Áú ¾Ê¾Æ ¾îµð±îÁö°¡ ÇÑ°èÀΰ¡´Â ¸ð¸£°Ú½À´Ï´Ù. 

±×¸®°í ¾ÆÁ÷ ¹Ì¹ÌÇÑ Á¡Àº ù ¹ø° Å°, µÎ ¹ø° Å°, ¼¼ ¹ø° Å°µîÀ» µû·Î ÁöÁ¤ÇÒ ¼ö ´Â ¾ø°í ´Ù¸¸ °¡Àå ¿ÞÂÊ Ä÷³ÀÌ Ã¹¹ø° Å°, ´ÙÀ½ ¿À¸¥ÂÊ Ä÷³ÀÌ µÎ¹ø° Å°, ±× ´ÙÀ½ ¿À¸¥ÂÊÀÌ ¼¼¹ø° Å°µî Ä÷³ÀÇ ¼ø¼­´ë·Î Å°°¡ Á¤ÇØÁý´Ï´Ù. ±×¸®°í °¢ Å°¸¶´Ù ¿À¸§Â÷¼ø ¶Ç´Â ³»¸²Â÷¼øÀ» °¢°¢ ÁöÁ¤ÇÒ ¼ö´Â ¾ø°í ÀüüÀûÀ¸·Î ¿À¸§Â÷¼ø ¶Ç´Â ³»¸²Â÷¼øµîÀ» ÁöÁ¤ÇÒ ¼ö ÀÖ½À´Ï´Ù. 

°á±¹ ¿¢¼¿ÀÇ Á¤·Ä°ú ºñ±³Çغ¼ ¶§ 4°³ÀÌ»óÀÇ Å°¸¦ Á¤·ÄÇÒ ¼ö ÀÖ´Ù´Â Á¡¿Ü¿¡´Â ÀåÁ¡Àº ¾ø½À´Ï´Ù. Á¤·ÄÀ» ÇÏ´Â ÇٽɼҽºÄÚµå´Â ¿Ü±¹¿¡¼­ ¼öÀÔÇÏ¿´½À´Ï´Ù. Dave Steppan(http://www.geocities.com/SiliconValley/Network/1030/ExcelTop.html)À̶ó´Â ºÐÀÌ ¸¸µç MultiColumnSort(...)ÇÔ¼ö¸¦ °¡Á®´Ù°¡ Á¦°¡ ¸¸µç Æû¿¡¼­ ºÙ¿´½À´Ï´Ù. (MultiColumnSort(...)ÇÔ¼ö´Â ³ªÁß¿¡ ¼³¸íÇϵµ·Ï ÇÏ°Ú½À´Ï´Ù)

¸ÕÀú ÆûÀ» º¸µµ·Ï ÇÏÁÒ. »ý±ä °ÍÀº ¸Å¿ì ´Ü¼øÇÕ´Ï´Ù. Á¤·ÄÇÒ ¹üÀ§¸¦ ÀԷ¹޴ RefEditÄÁÆ®·Ñ°ú Á¤·Ä¼ø¼­¸¦ ÀԷ¹޴ OptionButton¹öÆ°, ±×¸®°í Á¤·ÄÀ» ½ÇÁ¦ ¼öÇàÇϵµ·Ï ÇÏ´Â CommandButtonÀÌ ÀÖ½À´Ï´Ù. RefEditÄÁÆ®·ÑÀº ¿öÅ©½ÃÆ®ÀÇ ¿µ¿ªÀ» ÀÔ·Â ¹Þ½À´Ï´Ù. ÀÌÄÁÆ®·ÑÀÇ ¿À¸¥Âʳ¡À» º¸¸é ¹ØÁÙÀÖ´Â ¹öÆ°ÀÌ º¸ÀÏ °ÍÀÔ´Ï´Ù. ÀÌ°ÍÀ» Ŭ¸¯ÇÏ¸é ´ëÈ­»óÀÚ´Â Àá½Ã »ç¶óÁö°í ¹üÀ§¸¦ ÀÔ·ÂÇÏ´Â ³³ÀÛÇÑ ´ëÈ­»óÀÚ°¡ ³ªÅ¸³³´Ï´Ù. »ç½Ç ÀÌ°É ´©¸£Áö ¾Ê°í ±×³É ¿öÅ©½ÃÆ®¿¡ ¸¶¿ì½º¸¦ µå·¡±×ÇÏ¿© ¼¿À» ÀÔ·ÂÇصµ µË´Ï´Ù. ±×·¯¸é ValueÇÁ·ÎÆÛƼ¿¡ ÀÔ·ÂÇÑ ¹üÀ§ÀÇ ¼¿ÁÖ¼Ò¿¡ ÀúÀåµË´Ï´Ù. ÀÌ ¹üÀ§ÀÇ °ªÀ» Åëä·Î MultiColumnSort(...)ÇÔ¼öÀÇ Ã¹¹ø° ¸Å°³º¯¼ö·Î Àü´ÞÇÕ´Ï´Ù. 

±×¸®°í Á¤·Ä¼ø¼­¸¦ ÁöÁ¤ÇÏ´Â ¿É¼Ç¹öÆ°¿¡ µû¶ó Á¤·Ä¼ø¼­°¡ Á¤ÇØÁö´Âµ¥, ¿À¸§Â÷¼øÀÎ °æ¿ì Á¤¼ö°ª 1À», ³»¸²Â÷¼øÀÎ °æ¿ì -1À» MultiColumnSort(...)ÇÔ¼ö¿¡ µÎ¹ø° ¸Å°³º¯¼ö·Î Àü´ÞÇÕ´Ï´Ù.

ÇÁ·Î±×·¥ ¼Ò½º
Option Explicit

Dim SortMultColsTemp

Private Sub Sort_Click()
     Dim rngRange As Range
     Dim Order As Integer
     Dim i As Integer
     Dim j As Integer

     Set rngRange = Range(RefEdit.Value)

     Order = IIf(opAsc.Value, 1, -1)

     Sort rngRange, Order

     For i = 1 To rngRange.Columns.Count
          For j = 1 To rngRange.Rows.Count
               rngRange.Cells(j, i) = SortMultColsTemp(j, i)
          Next j
     Next i
     Debug.Print i
     Set rngRange = Nothing
     Unload Me
End Sub

Private Sub Sort(InMatrix1 As Range, SortOrder As Integer)
     Dim InMat1 As Variant

     Application.Volatile
     InMat1 = InMatrix1.Value
     SortMultColsTemp = MultiColumnSort(InMat1, SortOrder)
End Sub

Dim SortMultColsTemp
SortMultColsTemp´Â Á¤·ÄµÈ °á°ú¸¦ MultiColumnSort(...)ÇÔ¼ö·ÎºÎÅÍ ³Ñ°Ü¹Þ´Â VariantÇü½ÄÀÇ Àü¿ªº¯¼öÀÔ´Ï´Ù.

Private Sub btnSort_Click()
     Dim rngRange As Range
     Dim Order As Integer
     Dim i As Integer
     Dim j As Integer

     Set rngRange = Range(RefEdit.Value)
rngRange´Â RangeÇü½ÄÀÇ º¯¼ö·Î¼­ RefEditÄÁÆ®·ÑÀÇ ValueÇÁ·ÎÆÛƼ °ªÀ» ¹Þ¾Æ »ç¿ëÀÚ°¡ ¼±ÅÃÇÑ ¹üÀ§¸¦ ÀԷ¹޽À´Ï´Ù. 

     Order = IIf(opAsc.Value, 1, -1) 
Order´Â ¿À¸§Â÷¼øÀΰ¡ ¶Ç´Â ³»¸²Â÷¼øÀΰ¡ ¿©ºÎ¸¦ µ¹·Á¹Þ½À´Ï´Ù.

     Sort rngRange, Order
Sort()ÇÁ·Î½ÃÁ®´Â »ç¿ëÀÚ°¡ ÁöÁ¤ÇØÁØ Á¤·ÄÇÒ ¹üÀ§(rngRange)¿Í »ç¿ëÀÚ°¡ ÁöÁ¤ÇÑ Á¤·Ä¼ø¼­(Order)¸¦ ¸Å°³º¯¼ö·Î ¹Þ½À´Ï´Ù. ¹ÞÀº ÈÄ ¾î¶»°Ô ó¸®ÇÏ´ÂÁö¸¦ ³ªÁß¿¡ º¸µµ·Ï ÇÏÁÒ.

     For i = 1 To rngRange.Columns.Count
          For j = 1 To rngRange.Rows.Count
               rngRange.Cells(j, i) = SortMultColsTemp(j, i)
          Next j
     Next i
Á¤·ÄµÉ °á°ú¸¦ µÇµ¹·ÁÁÖ´Â ºÎºÐÀÔ´Ï´Ù. 

     Set rngRange = Nothing
rngRange °³Ã¼º¯¼ö¸¦ ´Ù »ç¿ëÇßÀ¸¹Ç·Î ¸Þ¸ð¸®¸¦ ÇØÁ¦ÇÕ´Ï´Ù.

     Unload Me
»ç¿ëÀÚÁ¤ÀÇ ÆûÀ» ¸Þ¸ð¸®¿¡¼­ ÇØÁ¦ÇÏ¿© È­¸é¿¡¼­ ¾ø¾Û´Ï´Ù.
End Sub

Private Sub Sort(InMatrix1 As Range, SortOrder As Integer)
     Dim InMat1 As Variant

     Application.Volatile
¿¢¼¿¿¡ Àç°è»êÇϵµ·Ï ¸í·ÉÀ» ³»¸³´Ï´Ù. Ȥ½Ã °è»êÀÌ ¼öµ¿ÀÎ °æ¿ì °è»ê ¾ÈµÈ °á°ú¸¦ °¡Áö°í Á¤·ÄÇÏ´Â °ÍÀ» ¸·±â À§ÇÑ °ÍÀÔ´Ï´Ù.

     InMat1 = InMatrix1.Value
InMatrix1 °³Ã¼º¯¼ö¿¡ ÀúÀåµÈ °ªÀ» InMat1 º¯¼ö¿¡ ÀúÀåÇÕ´Ï´Ù. ÀÌ·¸°Ô ÀúÀåµÈ °ªÀ» MultiColumnSort(...)ÇÔ¼ö¿¡ ³Ñ±é´Ï´Ù.

     SortMultColsTemp = MultiColumnSort(InMat1, SortOrder)
MultiColumnSort(...)ÇÔ¼ö¿¡ Á¤·ÄÇÒ °ª°ú Á¤·Ä¼ø¼­¸¦ ¸Å°³º¯¼ö·Î ³Ñ°ÜÁÖ°í °á°ú¸¦ Àü¿ªº¯¼öÀÎ SortMultColsTemp¿¡ ÀúÀåÇÕ´Ï´Ù.
End Sub

ÇÁ·Î±×·¥À» ½ÇÇàÇÑ °á°ú¸¦ ´ÙÀ½°ú °°ÀÌ ±×¸²À¸·Î Àâ¾Æ º¸¿©µå¸®°í À̸¸ ¸¶Ä¡°íÀÚ ÇÕ´Ï´Ù. 4°³ Ä÷³°ú 5°³ Ä÷³À» Á¤·ÄÇÏ´Â °æ¿ì¸¦ ½ÇÇàÇغ¸¾Ò´Âµ¥, ÀÌ ¿¹´Â Dave SteppanÀÇ ÆÄÀÏ¿¡¼­ °¡Á®¿Í Á¦°¡ ´Ù½Ã ¸¸µç ÇÁ·Î±×·¥À¸·Î ½ÇÇàÇÑ °á°úÀÔ´Ï´Ù.

015-3.gif(15860¹ÙÀÌÆ®)

¿À´ÃÀº ¿©±â±îÁöÀÔ´Ï´Ù. ¾ó¸¶Àü¿¡ ¿¹Á¦ÆÄÀÏÀ» º¸´Ï ¸Þ´º¸¦ ±¸¼ºÇÏ´Â Sheet1½ÃÆ®¿¡ ¸Þ´º·¹º§¿¡ ¾û¶×ÇÑ ¼ýÀÚ°¡ µé¾î°¡ ¸Þ´º±¸¼ºÀÌ ¾û¶×ÇÏ°Ô µÈ °ÍÀ» º¸¾Ò½À´Ï´Ù. À̹ø¿¡ À̸¦ °íÃƴµ¥, Ȥ½Ã Áö³­ Ä÷³ ¿¹Á¦ÆÄÀÏÀ» ´Ù¿î¹ÞÀ¸½Å ºÐµéÀÌ ´çȲÇÏÁö ¾Ê¾Ò³ª ½Í±º¿ä. ±×¸®°í Áߺ¹µ¥ÀÌÅÍ Ã³¸®¸¦ Çϱâ À§ÇØ ¿©·¯°¡Áö ADO°³Ã¼¸¦ ÂüÁ¶ÇÏ´Ù º¸´Ï Á¾Á¾ ÂüÁ¶°¡ Ç®·Á ¿¹Á¦ÆÄÀÏÀ» ºÒ·¯¿À´Â µµÁß LCASE() ¶Ç´Â FORMAT()µî¿¡¼­ ¿¡·¯¸¦ ¸¸³ª½Ç ¼ö ÀÖ½À´Ï´Ù. ±×·± °æ¿ì VBE¿¡¼­ [µµ±¸]-[ÂüÁ¶]·Î °¡¼Å¼­ ´©¶ôÀ¸·Î Ç¥½ÃµÈ °³Ã¼¸¦ ²¨¹ö¸®½Ã±¸, ÂüÁ¶ÇÒ °³Ã¼ ¸ñ·Ï»óÀÚÀÇ ÇÏ´Ü¿¡¼­ ´Ù½Ã °³Ã¼¸¦ ÂüÁ¶ÇØµÎ½Ã±æ ¹Ù¶ø´Ï´Ù.

¸ñÂ÷ | ÀÌÀü | ´ÙÀ½

¡¡

¿ÀÇǽºÆ©ÅÍ ±â¾÷ASP¼­ºñ½º 135-880 ¼­¿ï½Ã °­³²±¸ »ï¼ºµ¿ 157-3 ¿¤ÁöÆ®À©ÅÚ 2Â÷ 1603È£ ¢Ï070-7098-2554
Copyright ¨Ï 1999-2008 Officetutor.com All rights reserved
¡¡