때와 함께 작업 VBA 엑셀에서,당신도 필요할 문자열로 다른 부분에 따라 구분 기호.
경우,예를 들어,당신은 주소를 사용할 수 있습니다 VBA 분할 기능은 다른 부분의 주소는 쉼표로 구분하여(는 것 구분 기호 이 경우).
SPLIT 은 구분 기호를 기반으로 텍스트 문자열을 분할하는 데 사용할 수있는 Excel VBA 의 inbuilt 문자열 함수입니다.,
이 있습니다:
Excel VBA 분리 기능–구
Split ( Expression, , , )
- 식이 문자열을 분할하려는 기반으로 구분. 예를 들어 주소 예제의 경우 전체 주소가’표현식’이됩니다. 이 경우 0 길이 문자열(“”)분할 함수는 빈 배열을 반환합니다.
- 구분 기호:이것은 선택적 인수입니다. 이것은’표현식’인수를 분할하는 데 사용되는 구분 기호입니다., 주소 예제의 경우 쉼표는 주소를 다른 부분으로 분할하는 데 사용되는 구분 기호입니다. 이 인수를 지정하지 않으면 공백 문자가 기본 구분 기호로 간주됩니다. 길이가 0 인 문자열(“”)을 제공하면 전체’표현식’문자열이 함수에 의해 반환됩니다.
- Limit:이것은 선택적 인수입니다. 여기서 반환할 하위 문자열의 총 수를 지정합니다. 예를 들어’표현식’인수에서 처음 세 부분 문자열 만 반환하려는 경우 3 이됩니다., 이 인수를 지정하지 않으면 기본값은-1 이며 모든 하위 문자열을 반환합니다.
- 비교:이것은 선택적 인수입니다. 여기서 부분 문자열을 평가할 때 분할 함수가 수행 할 비교 유형을 지정합니다. 다음과 같은 옵션을 사용할 수 있습니다:
- 비교가 0 일 때:이것은 이진 비교입니다. 즉,구분 기호가 텍스트 문자열 인 경우(ABC 라고 가정 해 봅시다)대소 문자를 구분합니다. ‘ABC’는’abc’와 같지 않을 것입니다.
- 비교가 1 일 때:이것은 텍스트 비교입니다., 즉,구분 기호가 텍스트 문자열 인 경우(ABC 라고 가정 해 봅시다),’표현식’문자열에’abc’가 있더라도 구분 기호로 간주됩니다.
이제 우리는 기본적인 분할의 기능을 보자,몇가 실례로 다루어진다.
예 1-문장의 단어 분할
텍스트가 있다고 가정합니다–”빠른 갈색 여우가 게으른 개를 뛰어 넘습니다”.
분할 함수를 사용하여이 문장의 각 단어를 배열의 별도 항목으로 가져올 수 있습니다.,
아래 코드는 것입니다.
Sub SplitWords()Dim TextStrng As StringDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result() = Split(TextStrng)End Sub
동안 코드는 아무 작업도 하지 않는 유용한 도움이 될 것입니다,당신이 무엇을 이해하는 분할에서 기능 VBA 않습니다.
분할 함수는 텍스트 문자열을 분할하고 각 단어를 결과 배열에 할당합니다.
그래서이 경우:
- Result(0)값”The”
- Result(1)값”Quick”
- Result(2)값”Brown”등을 저장합니다.
이 예에서는 분할 할 텍스트 인 첫 번째 인수 만 지정했습니다., 구분 기호를 지정하지 않았으므로 공백 문자를 기본 구분 기호로 사용합니다.
중요 참고:
- VBA 분할 함수는 기본 0 부터 시작하는 배열을 반환합니다.
- 분할 함수의 결과가 배열에 할당되면 해당 배열을 문자열 데이터 유형으로 선언해야합니다. 변형 데이터 유형으로 선언하면 형식 불일치 오류가 표시됩니다). 위의 예에서 결과()를 문자열 데이터 유형으로 선언했음을 유의하십시오.,
예 2–문장의 단어 수 계산
분할 함수를 사용하여 문장의 총 단어 수를 얻을 수 있습니다. 여기서 트릭은 텍스트를 분할 할 때 얻는 배열의 요소 수를 세는 것입니다.
아래 코드는 메시지를 표시자로 단어수:
Sub WordCount()Dim TextStrng As StringDim WordCount As IntegerDim Result() As StringTextStrng = "The Quick Brown Fox Jumps Over The Lazy Dog"Result = Split(TextStrng)WordCount = UBound(Result()) + 1MsgBox "The Word Count is " & WordCountEnd Sub
이 경우에는 UBound 기능을 우리에게 알려줍의 상한 배열(즉,최대수의 요소를 배열)., 배열의 기본은 0 이므로 총 단어 수를 얻기 위해 1 이 추가됩니다.
사용할 수 있는 유사한 코드를 만들기를 사용자 정의 기능에 VBA 는 텍스트를 입력으로 돌아와 단어 계산합니다.
아래 코드를 이 함수를 만
한 번 만들어 사용할 수 있습니다 WordCount 기능 같은 다른 정기적인 기능입니다.
또한 이 함수는 처리 선행,후행 및 두 공간에서 사 단어입니다. 이것은 VBA 코드에서 TRIM 함수를 사용하여 가능하게되었습니다.,
경우에 당신이 원하는 방법에 대해 자세히 알아보려면 이 수식 작품 수를 계산하는 단어의 문장이나에 대해 배우고 싶다면 비 VBA 식을 얻을 수있는 방법의 단어수,이습니다.
를 들어를 사용하여 3 구분한 공간이 아닌 문자
이전에는 두 가지 예,우리가 사용만 인수를 하나에 분할 기능,그리고 나머지는 기본다.다른 구분 기호를 사용하는 경우 분할 수식에서이를 지정해야합니다.,
에서 아래 코드를 분할 반열에 기반을 쉼표로 구분한 다음 메시지를 표시하는 각 단어는 별도의 라인입니다.
위 코드에서,내가 사용한 다음에 대한 반복을 통해 이동하고 각 요소의’결과는’배열을 지정하는’DisplayText’변수입니다.
를 들어 4–나누는 주로 세 부분
와 분할,기능 지정할 수 있는 방법 숫자의 분할을 얻고 싶습니다. 예를 들어 아무 것도 지정하지 않으면 구분 기호의 모든 인스턴스가 문자열을 분할하는 데 사용됩니다.,
그러나 3 을 제한으로 지정하면 문자열은 세 부분으로 만 분할됩니다.
경우,예를 들어 나는 다음과 같은 주소:
2703 Winifred Way, Indianapolis, Indiana, 46204
사용할 수 있는 분할에서 기능 VBA 를 나누는 이 주소는 세 가지 부분입니다.
나누는 첫 번째 두 개의 기반에 쉼표로 구분 기호 및 나머지 부분이 되는 세 번째 요소의 배열입니다.,
아래 코드를 표시한 주소에 세 가지 다른 라인에 메시지자:
중 하나 실제적인 사용이 될 수 있습할 때 나누는 한 줄의 주소는 형식으로 메시지에 표시되는 상자입니다. 을 만들 수 있습니다 다음 사용자 정의 기능을 반환하는 주소로 세 부분으로 나누어(각 부품에 새로운 라인).
다음 코드는 것이:
이 코드는 모듈에서,당신이 기능을 사용할 수 있습니다(ThreePartAddress)에 통합 문서를 다른 모든 Excel 기능입니다.,
이 함수는 인수 하나가–셀 참조가 있는 주소입니다.결과 주소가 세 개의 다른 줄에 나타나려면 줄 바꿈 텍스트 형식을 셀에 적용해야합니다(정렬 그룹의 홈 탭에 있음). ‘텍스트 줄 바꿈’형식이 활성화되어 있지 않으면 전체 주소가 한 줄로 표시됩니다.
예 5–도시 이름에서 주소
분할과 기능에 VBA,지정할 수 있습니다 무엇의 결과 배열을 사용하고 싶습니다.,
예를 들어,내가 나누는 다음과 같은 주소를 기반으로 쉼표로 구분:
2703 Winifred Way, Indianapolis, Indiana, 46204
결과 배열에 보이는 것이 무언가가 다음과 같습니다:
{"2703 Winifred Way", "Indianapolis", "Indiana", "46204"}
이것은 배열을,나를 표시하도록 선택할 수 있습니다 반환 또는 특정 부분의 배열입니다.
아래는 숫자를 지정할 수 있고 배열에서 해당 요소를 반환하는 사용자 정의 함수에 대한 코드입니다. 예를 들어 상태 이름을 원하면 3 을 지정할 수 있습니다(배열의 세 번째 요소이므로).,
위의 함수는 주소가있는 셀 참조와 반환하려는 요소 번호 인 두 개의 인수를 취합니다. 분할 함수는 주소 요소를 분할하여 결과 변수에 할당합니다.
그런 다음 두 번째 인수로 지정한 요소 번호를 반환합니다. 베이스가 0 이므로 ElementNumber-1 은 주소의 올바른 부분을 반환하는 데 사용됩니다.
도시 이름을 원할 경우 두 번째 인수로 2 를 사용할 수 있습니다. 총 요소 수보다 높은 숫자를 사용하는 경우#값을 반환합니다! 오류.
할 수 있는 더 단순화하고 코드는 아래와 같이
위 코드에서 사용하는 대신 결과 변수,그것은 단지 반환이 지정된 요소의 번호입니다.따라서 분할(“좋은 아침”)(0)이있는 경우”좋은”인 첫 번째 요소 만 반환합니다.,
마찬가지로 위의 코드에서 지정된 요소 번호 만 반환합니다.
다음 Excel 자습서를 좋아할 수도 있습니다.
- Excel VBA InStr 기능–예제로 설명했습니다.
- Vba(단계별 가이드)를 사용하여 Excel 에서 데이터를 정렬하는 방법.
- 7 놀라운 것들 엑셀 텍스트 열에 당신을 위해 할 수 있습니다.
- Excel 에서 단어 수를 얻는 방법.
- VBA 트림 기능.리>