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

[µo°Ý] ¦r¦ê©î¸Ñ¸ê®ÆÂà¸m°ÝÃD

[µo°Ý] ¦r¦ê©î¸Ñ¸ê®ÆÂà¸m°ÝÃD

½Ð±Ð¦p¦ó°w¹ïEÄæMEMOªºÀx¦s®æ¦r¦ê©î¸Ñ¨Ã±N¬Û¦P¦C¸ê®ÆÂà¸m¡AEÄæMEMOªºÀx¦s®æ¦r¦ê¸ê®Æ·|¥HªÅ®æ©Î;²Å¸¹¤À¹j¦r¦ê¡C
­pºâªÅ®æ©Î;²Å¸¹¦r¦ê¤À¹j¦¸¼Æ¡A±NA~DÄæ¸ê®Æ¨Ì¤À¹j¦¸¼Æ½Æ»sH~KÄæ¦ì¡A¦A±N¤À¹jªºEÄæ¸ê®ÆÂà¸m¦¨L©MMÄæ¸ê®Æ¡C
¸Ô²Ó¸ê®Æ»P°ÝÃD»¡©ú¦pªþ¥ó Book1.zip (2.38 KB) ¡AÁÂÁ¤j®aªºÀ°¦£ ^_^
¤p«Ä

¦^´_ 1# child
¸Õ¸Õ¬Ý
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, AR As Variant, i As Integer
  4.     With Sheets("Sheet1")           '¸ê®Æ©Ò¦bªº¤u§@ªí
  5.         Set Rng = .Range("A2:D2")   'A~DÄæ¸ê®Æªº²Ä¤@­Ó¸ê®Æ
  6.         Do While Rng.Cells(1) <> "" 'AÄ榳¸ê®Æ
  7.             AR = Replace(Rng.Cells(1, 5), " ", ";") '´À´«ªÅ®æ¬°;
  8.             AR = Split(AR, ";")                     '¥H";"¦r¦ê¤À³Îªº°}¦C
  9.             For i = 0 To UBound(AR)                 '¨Ì§ÇŪ¨ú°}¦C¤¸¯À¼Æ
  10.                 'H:M ªºªíÀY¤w¹w¸m¦n
  11.                 With Cells(Rows.Count, "H").End(xlUp).Offset(1) 'HÄ檺²Ä¤@­ÓªÅ¥ÕÀx¦s®æ
  12.                     .Resize(1, Rng.Columns.Count) = Rng.Value
  13.                     '¥H"*"¦r¦ê¤À³Îªº°}¦C
  14.                     .Cells(1, Rng.Columns.Count + 1) = Split(AR(i), "*")(0) '°}¦Cªº²Ä¤@­Ó¤¸¯À­È
  15.                     With .Cells(1, Rng.Columns.Count + 2)
  16.                         If UBound(AR) > 0 Then                              '°}¦C³Ì¤j¥i¨Ï¥Îªº°}¦C¯Á¤Þ=-1  -> ªÅªº°}¦C
  17.                             .Cells = Split(AR(i), "*")(1)                   '°}¦Cªº²Ä¤G­Ó¤¸¯À­È
  18.                         Else
  19.                             .Cells = 1
  20.                         End If
  21.                     End With
  22.                 End With
  23.             Next
  24.             Set Rng = Rng.Offset(1)  '¤U¤@­ÓAÄæ¸ê®Æ
  25.         Loop
  26.     End With
  27. End Sub
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¦^´_ 2# GBKEE
ÁÂÁª©¥DªºÀ°¦£^_^
´ú¸Õ¦pªG¬O¥¼¤À¹jªº¦r¦êN1©ÎN1*6¨â¦r¦êQTY³£·|µ¥©ó1¡A¦pªG­n­×§ï¬°N1ªºQTYµ¥©ó1¡BN1*6ªºQTYµ¥©ó6©MÁקKEÄæÀx¦s®æ¦³¦h¾lªÅ®æ(Ex:N1 ©ÎA1*1  A2*3)®É¡A
.Cells(1, Rng.Columns.Count + 1) = Split(AR(i), "*")(0) '°}¦Cªº²Ä¤@­Ó¤¸¯À­È·|¥X²{²§±`¡A½Ð±Ð­n¦p¦ó­×§ïµ{¦¡½X¡AÁÂÁ³á!
¤p«Ä

TOP

Sub zz()
Dim arr, zr%, zc%, MyMemo, brr() As String
zr = [a1].CurrentRegion.Rows.Count
zc = [a1].CurrentRegion.Columns.Count
n = -1
arr = Range(Cells(2, 1), Cells(zr, zc))
For i = 1 To UBound(arr)
    MyMemo = Split(Application.Substitute(arr(i, 5), " ", ";"), ";")
    For j = 0 To UBound(MyMemo)
        PQ = Split(MyMemo(j), "*")
            n = n + 1: ReDim Preserve brr(5, n)
            For ii = 0 To 3
                brr(ii, n) = arr(i, ii + 1)
            Next
            brr(4, n) = PQ(0)
            If UBound(PQ) = 1 Then
                If PQ(1) > 1 Then
                    brr(5, n) = PQ(1)
                Else
                    brr(5, n) = 1
                End If
            Else
                brr(5, n) = 1
            End If
    Next
Next
[h2].Resize(n + 1, 6) = Application.Transpose(brr)
End Sub

TOP

Sub TEST()
Dim xR As Range, xH As Range, TT, TR
Set xR = [A1]: Set xH = [H2]
Do
Set xR = xR(2): If xR = "" Then Exit Do
For Each TT In Split(Replace(xR(1, 5), ";", " "), " ")
¡@¡@If TT <> "" Then
¡@¡@¡@xH.Resize(1, 4) = xR.Resize(1, 4).Value
¡@¡@¡@xH(1, 5).Resize(1, 2) = Split(TT & "*1", "*")
¡@¡@¡@Set xH = xH(2)
¡@End If
Next
Loop
End Sub

ª`·N¡G¢éÄ楲¶·¬O³sÄò¸ê®Æ
¡@

TOP

¦^´_ 3# child

½Ð¦Û¦æ­×§ï
  1. If UBound(Split(AR(i), "*")) > 0 Then               '°}¦C³Ì¤j¥i¨Ï¥Îªº°}¦C¯Á¤Þ=-1  -> ªÅªº°}¦C
  2.                             .Cells = Split(AR(i), "*")(1)                   '°}¦Cªº²Ä¤G­Ó¤¸¯À­È
  3.                         Else
  4.                             .Cells = 1
  5.                         End If
½Æ»s¥N½X
·P®¦ªº¤ß......(¦b³Â»¶®a±Ú°Q½×°Ï.¥Î¤ß¾Ç²ß·|¦³¶i¨Bªº)
¦ý¸ê·½µL­­,«á´©¦³­­,  ¤@¤Ñ1¤¸ªºÃÙ§U,¤H¤H¦³¯à¤O.

TOP

¥»©«³Ì«á¥Ñ child ©ó 2015-9-1 12:04 ½s¿è

¦^´_ 5# ­ã´£³¡ªL
´ú¸ÕOK¡A«ÜÁÂÁ¤j®aªºÀ°¦£¡A¤]ÁÂÁª©¥D©MikboyªºÀ°¦£¡A§Ú·|¦A¸ÕµÛ­×§ï¡AÁÂÁ³á¡I
¤p«Ä

TOP

        ÀR«ä¦Û¦b : ¬O«D·í±Ð¨|¡AÆg¬ü§@ĵ±§¡C
ªð¦^¦Cªí ¤W¤@¥DÃD