2016-08-25 2 views
1

Excel VBA 코드가있는 셀의 일부 텍스트 주위에 대괄호를 삽입 할 수 있습니까?Excel VBA를 사용하여 셀의 일부 텍스트 주위에 대괄호를 삽입하십시오.

그것은 첫 번째 쉼표 전에 텍스트를 찾을 필요가 첫 번째 쉼표 이전에는 괄호가없는 경우, [] 대괄호

셀 A의 텍스트는이 형식에 함께 포장. 그것은

A12345, blah, blah, blah, blah blah 
[B45678], blah, blah, blah, blah blah 
C97665, blah, blah, blah, blah blah 
D89798, blah, blah, blah, blah blah 
[B97494], blah, blah, blah, blah blah 
Y34987, blah, blah, blah, blah blah 

은 내가 더 VBA 지식이 없지만 행

을 수천있을 수로 가장 VBA를 사용하여 처리 할 것이라고 생각

[A12345], blah, blah, blah, blah blah 
[B45678], blah, blah, blah, blah blah 
[C97665], blah, blah, blah, blah blah 
[D89798], blah, blah, blah, blah blah 
[B97494], blah, blah, blah, blah blah 
[Y34987], blah, blah, blah, blah blah 

으로 실행하는 데 필요한 모든 하나 개의 텍스트 문자열에

enter image description here

: 같은 데이터

+1

확실히 가능합니다 ... 저는'InStr' 함수를 살펴 봅니다. http://www.exceltrick.com/formulas_macros/vba-instr-function/ 첫 번째 쉼표를 찾고 다음을 찾습니다. 문자열의 첫 글자 .... 시도 해보고, 붙어 있다면, 극복하려는 특정 문제가있는 새로운 질문으로 코드를 게시하십시오. –

+3

정직하게 말하면, 쉽게 쉽게 수식을 사용하여 관리 할 수도 있습니다. –

+0

빈 공간을 구분 기호로 사용하고 새 값 사이에 열을 추가하고 텍스트 주위에 "["및 "]"를 넣은 다음 값을 연결하십시오. – Lowpar

답변

1

이 작은 매크로를 실행 :

Sub bracket() 
    Dim r As Range, N As Long, s As String 
    Dim i As Long 

    N = Cells(Rows.Count, "A").End(xlUp).Row 

    For i = 1 To N 
     ary = Split(Cells(i, 1).Text, ",") 
     If Left(ary(0), 1) = "[" Then 
     Else 
      ary(0) = "[" & ary(0) & "]" 
      Cells(i, 1).Value = Join(ary, ",") 
     End If 
    Next i 
End Sub 

가 생성됩니다

enter image description here

편집 # 1 :

은 우리가 필요로하는 열 E에서 데이터로 작업하는 원래의 코드를 적용하기 변경하려면 코드 줄 :

Sub bracket() 
    Dim r As Range, N As Long, s As String 
    Dim i As Long 

    N = Cells(Rows.Count, "E").End(xlUp).Row 

    For i = 1 To N 
     ary = Split(Cells(i, 5).Text, ",") 
     If Left(ary(0), 1) = "[" Then 
     Else 
      ary(0) = "[" & ary(0) & "]" 
      Cells(i, 5).Value = Join(ary, ",") 
     End If 
    Next i 
End Sub 

Cells(13,1)A13Cells(13,5)E13 참조 할 셀을 참조하기 때문이다.

+0

다른 열을 만들지 않고 문제를 해결할 때 훨씬 더 효과적입니다. 감사합니다 – BradleyS

+0

@ 브래들리 S ............ 의견에 감사드립니다! –

+0

나는 이것을 E 열에서 처리하려고 했으므로 "A"를 N = Cells (Rows.Count, "E")로 바꾼다. End (xlUp) .Row, 그러나 여전히 A 열의 텍스트를 바꾼다. – BradleyS

관련 문제