返回列表 上一主題 發帖

[發問] 字串拆解資料轉置問題

回復 1# child
試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim Rng As Range, AR As Variant, i As Integer
  4.     With Sheets("Sheet1")           '資料所在的工作表
  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, ";")                     '以";"字串分割的陣列
  9.             For i = 0 To UBound(AR)                 '依序讀取陣列元素數
  10.                 'H:M 的表頭已預置好
  11.                 With Cells(Rows.Count, "H").End(xlUp).Offset(1) 'H欄的第一個空白儲存格
  12.                     .Resize(1, Rng.Columns.Count) = Rng.Value
  13.                     '以"*"字串分割的陣列
  14.                     .Cells(1, Rng.Columns.Count + 1) = Split(AR(i), "*")(0) '陣列的第一個元素值
  15.                     With .Cells(1, Rng.Columns.Count + 2)
  16.                         If UBound(AR) > 0 Then                              '陣列最大可使用的陣列索引=-1  -> 空的陣列
  17.                             .Cells = Split(AR(i), "*")(1)                   '陣列的第二個元素值
  18.                         Else
  19.                             .Cells = 1
  20.                         End If
  21.                     End With
  22.                 End With
  23.             Next
  24.             Set Rng = Rng.Offset(1)  '下一個A欄資料
  25.         Loop
  26.     End With
  27. End Sub
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

回復 3# child

請自行修改
  1. If UBound(Split(AR(i), "*")) > 0 Then               '陣列最大可使用的陣列索引=-1  -> 空的陣列
  2.                             .Cells = Split(AR(i), "*")(1)                   '陣列的第二個元素值
  3.                         Else
  4.                             .Cells = 1
  5.                         End If
複製代碼
感恩的心......(在麻辣家族討論區.用心學習會有進步的)
但資源無限,後援有限,  一天1元的贊助,人人有能力.

TOP

        靜思自在 : 做好事不能少我一人,做壞事不能多我一人。
返回列表 上一主題