我有1列,大約60個數值或不同長度的單元格。每個(或至少大部分)值都有一個數字字符。我想將列單元格拆分爲更多的列,我通常會使用excel的'tekst to columns'函數來處理這些列。text to columns:在值中的第一個數字拆分
但是,此功能沒有在第一個數字字符處拆分值的高級選項。基於空格,逗號等分裂是可能的,但這並不能幫助我。
是否有任何方法可以將單元格中的第一個數字分成2列?
我看了很多其他問題,但沒有一個(或其他互聯網論壇)幫助我在單元格值的第一個數字處分割值。
感謝#quantum285的答案。如果字符串包含一個數字,則此例程有效。我將測試字符串更改爲firstpart323secondpart。 然後part1返回'firstpart32',part2返回secondpart。
我試圖理解這些代碼是如何發生的,請糾正我,如果我錯了:
首先,字符串的lenght確定。
其次,檢查該字符串中的每個位置是否爲數字。但是這張支票是從右到左的嗎?因此,如果是第一部分329秒部分:長度爲22.
然後isnumeric()
檢查從1到22的每個位置是否爲數字,並在找到數字時停止?
如果是這樣,第1部分是所述值我,其中我是從右側的第一個位置,其中多個被發現字符串中向左前的tekst。
然後第2部分是從這個相同位置右邊的字符串。
不過,我找這找由左到右起第一個程序(或最後的位置從右到左),其中一個號碼是......
所以我現在改變了套路,簡單地調節for i = 1 to
行:
Sub test()
For j = 4 To Cells(Rows.Count, 4).End(xlUp).Row
For i = Len(Cells(j, 4)) To 1 Step -1
If IsNumeric(Mid(Cells(j, 4), i, 1)) Then
Cells(j, 5) = Left(Cells(j, 4), i - 1)
Cells(j, 6) = (Right(Cells(j, 4), Len(Cells(j, 4)) - i + 1))
End If
Next i
Next j
End Sub
這近乎完美地工作(除了在的值(如具有多個數字組合幾個細胞:湯10克20boxes)但是,因爲這些都是隻有少數,我可以調整他們用手。
謝謝!