返回列表 上一主題 發帖

[發問] 判斷儲存格內有幾個字元,並以兩個為單位排列

回復 9# a703130
這些也可試試看
  1. Option Explicit
  2. Sub Ex()
  3.     Dim AR(1), i As Integer, ii As Integer, s As String
  4.     With Range([B1], [B1].End(xlDown))              '資料範圍
  5.         AR(0) = .Value                              '資料置入陣列
  6.         .Replace "*x", "", LookAt = xlPart          '不要的資料取代為""字串
  7.         AR(1) = .Value                              '整理後的資料置入陣列
  8.         .Value = AR(0)                              '還原原本資料
  9.         For i = 1 To UBound(AR(1))                  '整理後的資料的陣列
  10.             s = ""                                  '清空字串變數
  11.             For ii = Len(AR(1)(i, 1)) To 1 Step -2   '由字串尾端
  12.                 s = s & "-" & Mid(AR(1)(i, 1), ii - 1, 2) '取二字元置入字串變數
  13.             Next
  14.             AR(1)(i, 1) = Mid(s, 2)                  '陣列的元素=字串變數
  15.         Next
  16.         .Offset(, 1) = AR(1)                         '資料範圍向右位移一欄範圍資料=AR(1)
  17.     End With
  18. End Sub
  19. Sub Ex1()
  20.     Dim AR, i As Integer, ii As Integer, xi As Variant, s As String
  21.     With Range([B1], [B1].End(xlDown))              '資料範圍
  22.         AR = .Value                                 '資料置入陣列
  23.         For i = 1 To UBound(AR)
  24.             xi = InStr(AR(i, 1), "x") + 1           '陣列的元素中尋找"x"
  25.             xi = Mid(AR(i, 1), xi)                  '取得正確資料
  26.             s = ""                                  '清空字串變數
  27.             For ii = Len(xi) To 1 Step -2           '由字串尾端
  28.                 s = s & "-" & Mid(xi, ii - 1, 2)    '取二字元置入字串變數
  29.             Next
  30.             AR(i, 1) = Mid(s, 2)                     '陣列的元素=字串變數
  31.         Next
  32.         .Offset(, 1) = AR                            '資料範圍向右位移一欄範圍資料=AR
  33.     End With
  34. End Sub
  35. Sub Ex2()
  36.     Dim AR, i As Integer, ii As Integer, s As String
  37.     With Range([B1], [B1].End(xlDown))                  '資料範圍
  38.         AR = .Value                                     '資料置入陣列
  39.         For i = 1 To .Cells.Count                       '資料範圍的第一個儲存格到最後一個儲存格
  40.             ii = Len(.Cells(i))                         '計算儲存格的字元數
  41.             s = ""                                      '清空字串變數
  42.             Do
  43.                 s = s & "-" & Mid(.Cells(i), ii - 1, 2) '取二字元置入字串變數
  44.                ii = ii - 2                              '由後往前推進2字元
  45.             Loop Until InStr(Mid(.Cells(i), ii - 1, 2), "x")  '離開迴圈條件:找到不要的字串
  46.             AR(i, 1) = Mid(s, 2)                        '陣列的元素=字串變數
  47.         Next
  48.         .Offset(, 1) = AR                               '資料範圍向右位移一欄範圍資料=AR
  49.     End With
  50. End Sub
複製代碼

TOP

        靜思自在 : 好事要提得起,是非要放得下,成就別人即是成就自己。
返回列表 上一主題