返回列表 上一主題 發帖

字串分割與換行?

本帖最後由 GBKEE 於 2010-10-14 18:54 編輯

回復 2# joey0415
請參考參考
Sub Ex()
    Dim Rng As Range, A, B, W, E
    W = "111,222,333,444 AAAA,BBB,CCC,DDDD"
    A = Split(W, " ")  '以空白分解
    Set Rng = [A1]
    Rng.CurrentRegion = ""
    For Each E In A
        B = Split(E, ",")  '以 , 分解
       '''''''''''橫排
        Rng.Resize(1, UBound(B)+1) = B     '陣列是橫排的
        Set Rng = Rng.Offset(1)
        '''''''''''直排
        'Rng.Resize(UBound(B)+1, 1) = Application.Transpose(B)  'Transpose轉置為直排
        'Set Rng = Rng.Offset(, 1)
    Next
End Sub

TOP

本帖最後由 GBKEE 於 2012-6-26 10:08 編輯

回復 6# lasum
Sub Macro1()
On Error Resume Next '增加程式   '<- 這不是解決之道 :   如程式中還有錯誤是會找不出來的
t = [a1]                                                < ..問題是這字串中  如沒有 空格的字串
sp = Split(t, " ")                                 <-這裡的陣列上限元素的索引值 只有 0
p1 = Split(sp(0), ",")
p2 = Split(sp(1), ",")                         <-  這必然會出現 陣列索引超出範圍 錯誤 9
  1. Sub Ex()
  2. Dim A, AR, xi As Integer
  3. A = "A111,222,333,444" '這裡的A字串 套到 oobird 超版的程式 會出錯
  4. 'A = "A111,222,333,444 Baa,bbb,ccc,ddd C11,222,333,444 Daa,bbb,ccc,ddd"
  5. '上面的 A字串 套到 oobird 超版的程式 OK的
  6. AR = Split(A, " ")
  7. For xi = 0 To UBound(AR) 'UBound 傳回 陣列的上限元素的索引值
  8. A = Split(AR(xi), ",")
  9. [a1].Offset(xi).Resize(, UBound(A) + 1) = A
  10. [G1].Offset(, xi).Resize(UBound(A) + 1) = Application.Transpose(A)
  11. 'Transpose 工作表函數 :轉置
  12. Next
  13. End Sub
複製代碼

TOP

        靜思自在 : 人生不一定球球是好球,但是有歷練的強打者,隨時都可以揮棒。
返回列表 上一主題