우리는 선택된 범위의 단어 수를 계산 엑셀 VBA에서 프로그램을보고 아래. 하나 개 이상의 공간은 별도의 단어로 간주됩니다.

상황 :

Count Words in Excel VBA

  1. 먼저, 우리는이 범위 개체와 세 개의 변수를 선언합니다. 우리는 범위가 RNG 세포 개체를 호출합니다. 우리가 cellWords를 호출 한 정수 변수, 우리가 totalWords를 호출 한 정수 변수, 우리는 콘텐츠를 호출 한 문자열 변수입니다.

Dim rng As Range, cell As Range

Dim cellWords, totalWords As Integer, content As String
  1. 우리는 선택된 범위와 범위 오브젝트 RNG 값과 0과 유형 정수 개의 변수를 초기화

Set rng = Selection

cellWords = 0

totalWords = 0
  1. 우리는 무작위로 선택된 범위의 각 셀을 확인하려면 (이 범위는 임의의 크기 일 수있다). 엑셀 VBA에서는 이에 대한 각 다음 루프의 경우를 사용할 수 있습니다. 다음 코드 줄을 추가합니다

For Each cell In rng

Next cell

참고 : RNG 세포가 무작위로 여기에 선택되어, 당신은 어떤 이름을 사용할 수 있습니다.

코드의 나머지 부분에서이 이름을 참조해야합니다.

  1. 다음으로, 우리는 포함 얼마나 많은 단어를이 범위의 각 셀에 대해 결정한다. 공식을 포함하는 셀을 무시하려면, (cell.HasFormula이 거짓 인 경우에만 우리가 계속) 각하고 다음 사이에 다음 코드 줄을 추가합니다.

If Not cell.HasFormula Then

End If
  1. 첫째, 우리는 변수 내용에 셀의 내용을 작성합니다.

(어떤이있는 경우) 다음으로, 우리는 시작과 끝의 공백을 제거합니다. 엑셀 VBA에서, 당신은이에 대한 트림 기능을 사용할 수 있습니다. 예를 들어, “엑셀 VBA”는 “엑셀 VBA”로 변환됩니다. 당신의 If 문에 다음 코드 줄을 추가합니다.

content = cell.Value

content = Trim(content)

참고 : 엑셀 VBA에서 트림 기능은 단어 사이에 여분의 공백을 제거하지 않습니다,하지만이 예에서 확인합니다.

6.이 시점에서, 세포는 여전히 비어있을 수 있습니다. 셀이 비어있는 경우, 우리는 변수 cellWords에 0 값을 할당합니다. 그렇지 않은 경우는 적어도 하나 개의 단어를 포함하고 우리는 변수 cellWords에 값 1을 할당합니다. 당신의 If 문에 다음 코드 줄을 추가합니다.

If content = "" Then

cellWords = 0

Else

cellWords = 1

End If

셀은 물론 두 개 이상의 단어를 포함 할 수 있습니다. 그게 바로 우리가 지금 발견 할 것입니다. 예를 들어 우리는 가지고 : “엑셀 VBA”. 셀이 단계에서 적어도 하나의 공백이있는 경우에는 적어도 하나 개 이상의 단어가 포함되어 있습니다. 당신은 공간을 찾기 위해 엑셀 VBA에서 측량기 기능을 사용할 수 있습니다.

INSTR (내용은, “”) 내용의 첫 번째 공간의 위치를 ​​찾습니다.

  1. 우리는 마 루프 동안 구조의 사용을 만들 것입니다. 코드 (단계 8, 9, 10)이 말 사이에 사실이지만 할 일 이후 부분만큼 반복됩니다. 우리는 (한 내용이 공간 때문에 더 많은 단어가 들어 있으므로) 0이 참> ( “”, 내용) 측량기만큼이 단계를 반복합니다. 당신의 If 문에 마 While 루프를 추가합니다.

Do While InStr(content, " ") > 0

Loop
  1. 다음에, 우리는 먼저 공간의 위치에서 콘텐츠를 시작하는 참여. 우리는이에 대한 중간 기능을 사용합니다.

content = Mid(content, InStr(content, " "))

예를 들어 : 중간 ( “엑셀 VBA”측량기 ( “엑셀 VBA”, “”VBA “)) 줄 것이다”.

  1. 우리는 다시 문자열을 잘라.

content = Trim(content)

결과 : “VBA”

  1. 10. 우리 증가 cellWords

cellWords = cellWords + 1

이 마 루프 한 내용이 공간 때문에 더 많은 단어를 포함으로 반복 될 것이지만. 이 예에서, 우리는 할 일을 종료 루프 동안 이후 더 이상 공간을 포함하지 않는 “VBA”! 결과 :이 셀은 2 개 개의 단어가 포함되어 있습니다.

  1. 하나 개의 셀을 체크 한 후, 우리는 변수 totalWords cellWords에 추가. 이 코드 라인은 루프 동안 계십니까 외부하지만 if 문에 배치해야합니다.

totalWords = totalWords + cellWords

모든 셀이 선택 될 때까지 전체 프로세스는 다음 셀 다시 시작합니다.

  1. 마지막으로, 우리는를 사용 MSGBOX totalWords의 값을 표시. 이 코드 라인은 다음의 각 루프에 대한 외부에 배치되어야한다.

MsgBox totalWords & " words found in the selected range."
  1. 테스트 프로그램.

결과 :

Count Words result