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

½Ð°Ý¦p¦ó¥ÎVBA.¦Û°Ê¦X¨ÖÀx¦s®æ"¸ó¦C¸m¤¤"

¦^´_ 4# joey3277
¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng(1 To 3) As Range, A As Range, C As Range, R As Integer
  4.     On Error Resume Next                                                   '¤£²z·|µ{§Ç¤Wªº¿ù»~,Ä~Äò°õ¦æµ{¦¡
  5.     Set Rng(1) = Application.InputBox("¿ï¨úÀx¦s®æ(¥i¿ï¦h­«½d³ò)", Type:=8) '¦p¨S¦³¿ï¨úÀx¦s®æ:µ{§Ç¤Wªº¿ù»~
  6.     If Err <> 0 Then Exit Sub                                               'µ{§Ç¤W¦³¿ù»~
  7.     On Error GoTo 0                                                         '¤£³B¸Ìµ{§Ç¤Wªº¿ù»~
  8.     For Each A In Rng(1).Areas                                              'ª«¥ó¶°¦X: Areas  (¦h­«½d³ò)
  9.         For Each C In A.Columns                                             'ª«¥ó¶°¦X: Columns(øó¦ì)
  10.             Set Rng(2) = C.Cells(1)                                         'ª«¥ó:½d³òªº,²Ä1­Ó,Àx¦s®æ¶}©l
  11.             R = C.Cells(C.Cells.Count).Row                                  '¼Æ­È :ª«¥ó½d³ò³Ì«áªºÀx¦s®æ¦C¸¹
  12.             Do
  13.                 Set Rng(3) = Rng(2).Offset(1)                               'ª«¥ó Rng(3): Rng(2)ªº¤U¤@¦CÀx¦s®æ
  14.                 Do While Rng(3) = "" And Rng(3).Row <= R                    'While(±ø¥ó¦¨¥ß,°õ¦æ°j°é):(ª«¥ó="" ¥B¶· ª«¥ó<>ª«¥ó½d³òªº³Ì«á¦C¸¹)
  15.                     Set Rng(3) = Rng(3).Offset(1)                           'ª«¥ó Rng(3): Rng(3)ªº¤U¤@¦CÀx¦s®æ
  16.                 Loop
  17.                 Rng(1).Parent.Range(Rng(2), Rng(3).Offset(-1)).Merge        'Merge(¦X¨ÖÀx¦s®æ)
  18.                 Set Rng(2) = Rng(3)                                         'ª«¥ó Rng(2): ¦³¸ê®Æ¼Æ­ÈªºÀx¦s®æ
  19.             Loop Until Rng(3).Row > R                                       'Until(±ø¥ó¤£¦¨¥ß,°õ¦æ°j°é)
  20.         Next
  21.     Next
  22. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 7# joey3277
­×§ï¦p¤U
  1. Option Explicit
  2. Sub test()
  3.     Dim lngRowCount As Long, Rng As Range, R As Range
  4.     Dim lngRowCounter As Long
  5.     Dim lngRowCountLast As Long
  6.     On Error Resume Next                                                    '¤£²z·|µ{§Ç¤Wªº¿ù»~,Ä~Äò°õ¦æµ{¦¡
  7.     Set Rng = Application.InputBox("¿ï¨úÀx¦s®æ(¥i¿ï¦h­«½d³ò)", Type:=8)     '¦p¨S¦³¿ï¨úÀx¦s®æ:µ{§Ç¤Wªº¿ù»~
  8.     If Err <> 0 Then Exit Sub                                               'µ{§Ç¤W¦³¿ù»~
  9.     For Each R In Rng.Areas
  10.         lngRowCount = R.Rows.Count                                          '½d³òªºÁ`¦C¼Æ
  11.         lngRowCountLast = 1
  12.         For lngRowCounter = 2 To lngRowCount
  13.             With R.Range("A1")
  14.                 If .Offset(lngRowCounter) <> "" Or lngRowCounter = lngRowCount Then
  15.                     If Not (lngRowCountLast = lngRowCounter - 1) Then
  16.                         .Parent.Range(.Offset(lngRowCountLast), .Offset(lngRowCounter - 1)).Merge
  17.                     End If
  18.                     lngRowCountLast = lngRowCounter
  19.                 End If
  20.             End With
  21.         Next
  22.     Next
  23. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

        ÀR«ä¦Û¦b : ºÉ¦h¤Ö¥»¥÷¡A´N±o¦h¤Ö¥»¨Æ¡C
ªð¦^¦Cªí ¤W¤@¥DÃD