다른 단어 나 숫자와 함께 영숫자 텍스트가있는 특정 열의 셀이 있습니다. 세포Excel의 셀에서 "단어"를 삭제하고 싶지만 영숫자 텍스트를 유지하고 싶습니다.
예 굵은에 있습니다
BOTTOM : 나는 J103에게
J103의 텍스트를 BOTTOM :, 주 및 13을 삭제하고 유지하려면 13
J103 참고 할 수있다 두 개 이상의 문자와 한 개에서 네 개의 숫자 범위를 포함하지만, 항상 결합되어 특정 행에 대해 동일한 문자로 시작됩니다. 일부 셀에는 유지하려는 텍스트 만 있지만 쉼표로 구분됩니다. 이 기준을 충족시키는 셀은 무시되어야한다.
CR33, CR45, CR49 - 행 1
D12, D13, D14, D104 - 행 내가 번호를하지 않습니다 삭제하려면 2 개
단어. 독립형 숫자는 글자를 가지지 않을 것이며, 이상한 일이 생기면 글자가 마지막 인 곳은 13a가 될 것입니다.
특정 셀이있는 경우 :
TOP : J104 바닥 : J103
내가 모두 TOP 싶습니다 및 BOTTOM : 제거 및 분리 나머지 J104과 J103 쉼표. 나는 모든 매크로 가능한 것처럼이 선호
J104, J103.
나는 VBA에서 초보자 그래서 그의 대답에 자신의 코드와 정규 표현식을 사용하는 앤디 G에 의해 제안되었다
부드럽게입니다.
나는이 문제에 관해 읽었지만 실제 일어나고있는 것을 완전히 이해하지 못했다. 이것이 내가 쓸모없는 것을 시도한 것이다.
Sub test()
Dim rngToSearch As Range
Dim rng As Range
'Tools References - Microsoft VBScript Regular Expressions 5.5
Dim rgx As New VBScript_RegExp_55.RegExp
Dim matches As Variant, match As Variant
Dim strTemp As String
Dim LastRow As Long
Dim cellText As String
Dim i As Integer
With ActiveSheet
LastRow = .Cells(.Rows.Count, "D").End(xlUp).Row
End With
rgx.Pattern = "[A-Z]+\d{1,4}"
'rgx.IgnoreCase = True
rgx.Global = True
Application.ScreenUpdating = False
Set rngToSearch = Range("D1:D" & LastRow).CurrentRegion
For Each rng In rngToSearch
strTemp = ""
Set matches = rgx.Execute(rng.Value)
For Each match In matches
strTemp = strTemp & match.Value & ","
Next match
If Len(strTemp) > 0 Then
rng.Offset(0, 1).Value = Left(strTemp, Len(strTemp) - 1)
End If
Next rng
Application.ScreenUpdating = True
End Sub
나는 모든 답변을 주셔서 감사합니다. 미리 감사드립니다.
이 MS Excel이 맞습니까? –
예, 죄송합니다. Office 2007. – sparky3489
정규식을 사용하여 다음 작업을 수행 할 수 있습니다. http://www.tmehta.com/regexp/ –