返回列表 上一主題 發帖

VBA如何把字串中的英文字前插入空格?

VBA如何把字串中的英文字前插入空格?

請問VBA要如何在同一儲存格中,在英文字的前面插入空格?
如下圖左邊處理前,右邊處理後。

擷取.JPG
2022-8-24 09:03

回復 1# s13030029


    請前輩試試看

Option Explicit
Sub test()
Dim Arr, i, x, T, j$, c
Arr = Range([A1], [A65536].End(3))
For i = 1 To UBound(Arr)
   j = Trim(Arr(i, 1))
   c = Len(j)
   For x = c To 2 Step -1
      If UCase(Mid(j, x, 1)) Like "[A-Z]" Then
         j = Trim(Mid(j, 1, x - 1)) & " " & Mid(j, x, c * 2)
      End If
   Next
   Arr(i, 1) = j
Next
[B1].Resize(UBound(Arr), 1) = Arr
End Sub

TOP

回復 1# s13030029

請測試看看,謝謝

Sub test()
Dim Arr, i, x, T, j$, c
Arr = Range([A1], [A65536].End(3))
For i = 1 To UBound(Arr)
    j = Trim(Arr(i, 1))
    c = Len(j)
    For x = c To 2 Step -1
        T = UCase(Mid(j, x, 1))
        If Asc(T) > 64 And Asc(T) < 123 Then
            Arr(i, 1) = Replace(Arr(i, 1), T, " " & T)
        End If
   Next
Next
[B1].Resize(UBound(Arr), 1) = Arr
End Sub

TOP

本帖最後由 s13030029 於 2022-8-25 08:41 編輯

回復 2# Andy2483
因為我這個是要處理同一儲存格中的字串,而且還有換行,所以在Arr的地方會有出錯。
擷取.JPG
2022-8-25 08:41

TOP

本帖最後由 s13030029 於 2022-8-25 08:41 編輯

回復 3# samwang
因為我這個是要處理同一儲存格中的字串,而且還有換行,所以在Arr的地方會有出錯。
擷取.JPG
2022-8-25 08:41

TOP

本帖最後由 samwang 於 2022-8-25 09:38 編輯
回復  samwang
因為我這個是要處理同一儲存格中的字串,而且還有換行,所以在Arr的地方會有出錯。
s13030029 發表於 2022-8-25 08:38


Arr = Range([A1], [A65536].End(3)) 改成 Arr = [a1],for 循環移除,還有...,可以試著改看看,有問題再提出,謝謝

TOP

隨意窩 "EXCEL迷"  blog  或https://hcm19522.blogspot.com/ EXCEL函數

TOP

        靜思自在 : 君子為目標,小人為目的。
返回列表 上一主題