- 帖子
- 5923
- 主題
- 13
- 精華
- 1
- 積分
- 5986
- 點名
- 0
- 作業系統
- win10
- 軟體版本
- Office 2010
- 閱讀權限
- 150
- 性別
- 男
- 來自
- 台灣基隆
- 註冊時間
- 2010-5-1
- 最後登錄
- 2022-1-23
        
|
回復 1# child
試試看- Option Explicit
- Sub Ex()
- Dim Rng As Range, AR As Variant, i As Integer
- With Sheets("Sheet1") '資料所在的工作表
- Set Rng = .Range("A2:D2") 'A~D欄資料的第一個資料
- Do While Rng.Cells(1) <> "" 'A欄有資料
- AR = Replace(Rng.Cells(1, 5), " ", ";") '替換空格為;
- AR = Split(AR, ";") '以";"字串分割的陣列
- For i = 0 To UBound(AR) '依序讀取陣列元素數
- 'H:M 的表頭已預置好
- With Cells(Rows.Count, "H").End(xlUp).Offset(1) 'H欄的第一個空白儲存格
- .Resize(1, Rng.Columns.Count) = Rng.Value
- '以"*"字串分割的陣列
- .Cells(1, Rng.Columns.Count + 1) = Split(AR(i), "*")(0) '陣列的第一個元素值
- With .Cells(1, Rng.Columns.Count + 2)
- If UBound(AR) > 0 Then '陣列最大可使用的陣列索引=-1 -> 空的陣列
- .Cells = Split(AR(i), "*")(1) '陣列的第二個元素值
- Else
- .Cells = 1
- End If
- End With
- End With
- Next
- Set Rng = Rng.Offset(1) '下一個A欄資料
- Loop
- End With
- End Sub
複製代碼 |
|