返回列表 上一主題 發帖

[發問] 求助 split問題 感恩

[發問] 求助 split問題 感恩


希望將A欄 分割成B欄數字  C欄文字  感恩

Sub 分割()
    Dim i As Integer
    With Sheet2
        .Cells(1, 2) = "編號"
        .Cells(1, 3) = "名稱"
         For i = 2 To .Cells(65536, 6).End(xlUp).Row
             Sheet2.Cells(i, 2) = Split(.Cells(i, 1), "  ")(0)
             Sheet2.Cells(i, 3) = Split(.Cells(i, 1), "  ")(1)
    Next i
End With
End Sub

感恩 各位大大的無私分享\

TOP

回復 9# 准提部林
果然是好方法:
也學到了 Mid及Offset函數 的 簡又新 方法, 謝謝!!

TOP

本帖最後由 c_c_lai 於 2015-12-6 13:01 編輯

回復 10# 准提部林
A5 = "003金大中"
執行 分割() 結果為:    3
B5 := =MID(LOOKUP(,-LEFT(1&A5,ROW($1:$15))),3,15)
則 B5  =  "003"

Cells(I, 2) = "'" & Left(Str1, J - 1) 的方式
則 B5  =  "'003"

TOP

9 樓的
xR(1, 2) = Mid(U, 2)
改為
xR(1, 2) = "'" & Mid(U, 2)
強迫寫入為文字
{...} 表示需要用 CTRL+SHIFT+ENTER 三鍵輸入公式

TOP

公式:B/C欄設通用格式
B2:=MID(LOOKUP(,-LEFT(1&A2,ROW($1:$15))),3,15)
C2:=MID(A2,LEN(B2)+1,99)

TOP

Sub 分割()
Dim xR As Range, U
For Each xR In Range([A2], [A65536].End(xlUp))
  U = Val(1 & xR)
  xR(1, 2) = Mid(U, 2)
  xR(1, 3) = Mid(xR, Len(U))
Next
End Sub

1.編號限〔純數字〕,最多14碼
2.B欄預先設為〔文字格式〕,以免〔前導0〕無法顯示
1

評分人數

    • ML089: Val(1 & xR)用的好金錢 + 2

TOP

回復 5# 魷魚絲
針對 0911 修正, 試試看
  1. '
  2. Sub splitTXT()
  3.    Dim Str1 As String
  4.    Dim I As Integer, J As Integer, ST As Integer
  5.    For I = 2 To [A65536].End(xlUp).Row
  6.        J = 1
  7. '       Num = ""    這是測試時加上去的, 忘了去掉, Sorry!!
  8.        Str1 = Cells(I, 1)
  9.        For J = 1 To Len(Str1)
  10.            ST = InStr(1, "0123456789", Mid(Str1, J, 1), 1)
  11.            If ST = 0 Then
  12.                Cells(I, 2) = "'" & Left(Str1, J - 1)     '針對 0911 修正
  13.                Cells(I, 3) = Right(Str1, Len(Str1) - J + 1)
  14.                Exit For
  15.            End If
  16.        Next
  17.    Next
  18. End Sub
複製代碼

TOP

  1. Sub SplitText()
  2.   Dim I       As Long, J As Long
  3.   Dim RegExp  As Object
  4.   Dim Match   As Object
  5.   Dim strNum  As String
  6.   Dim strValue  As String
  7.   
  8.   Set RegExp = CreateObject("VBScript.RegExp")
  9.   With Sheet2
  10.     With RegExp
  11.       .Global = True
  12.       .Pattern = "\d+"
  13.     End With
  14.     For I = 2 To .Cells(.Rows.Count, 1).End(xlUp).Row
  15.       strValue = .Cells(I, 1).Value
  16.       Set Match = RegExp.Execute(strValue)
  17.       If Match.Count Then
  18.         strNum = Match.Item(0)
  19.         .Cells(I, 2).Value = strNum
  20.         J = InStr(strValue, strNum) + Len(strNum)
  21.         If J Then .Cells(I, 3).Value = Mid$(strValue, J)
  22.         Set Match = Nothing
  23.       Else
  24.         .Cells(I, 3).Value = strValue
  25.       End If
  26.     Next I
  27.   End With
  28. End Sub
複製代碼
世界那麼大,可我想去哪?

TOP

回復 5# 魷魚絲

最好提供更多的例子,
編號最多幾位數?有無含英文或符號?
名稱後面有無包含數字?

TOP

        靜思自在 : 稻穗結得越飽滿,越會往下垂,一個人越有成就,就要越有謙沖的胸襟。
返回列表 上一主題