엑셀 VBA에서 단어를 계산
우리는 선택된 범위의 단어 수를 계산 엑셀 VBA에서 프로그램을보고 아래. 하나 개 이상의 공간은 별도의 단어로 간주됩니다.
상황 :
-
먼저, 우리는이 범위 개체와 세 개의 변수를 선언합니다. 우리는 범위가 RNG 세포 개체를 호출합니다. 우리가 cellWords를 호출 한 정수 변수, 우리가 totalWords를 호출 한 정수 변수, 우리는 콘텐츠를 호출 한 문자열 변수입니다.
Dim rng As Range, cell As Range Dim cellWords, totalWords As Integer, content As String
-
우리는 선택된 범위와 범위 오브젝트 RNG 값과 0과 유형 정수 개의 변수를 초기화
Set rng = Selection cellWords = 0 totalWords = 0
-
우리는 무작위로 선택된 범위의 각 셀을 확인하려면 (이 범위는 임의의 크기 일 수있다). 엑셀 VBA에서는 이에 대한 각 다음 루프의 경우를 사용할 수 있습니다. 다음 코드 줄을 추가합니다
For Each cell In rng Next cell
참고 : RNG 세포가 무작위로 여기에 선택되어, 당신은 어떤 이름을 사용할 수 있습니다.
코드의 나머지 부분에서이 이름을 참조해야합니다.
-
다음으로, 우리는 포함 얼마나 많은 단어를이 범위의 각 셀에 대해 결정한다. 공식을 포함하는 셀을 무시하려면, (cell.HasFormula이 거짓 인 경우에만 우리가 계속) 각하고 다음 사이에 다음 코드 줄을 추가합니다.
If Not cell.HasFormula Then End If
-
첫째, 우리는 변수 내용에 셀의 내용을 작성합니다.
(어떤이있는 경우) 다음으로, 우리는 시작과 끝의 공백을 제거합니다. 엑셀 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 (내용은, “”) 내용의 첫 번째 공간의 위치를 찾습니다.
-
우리는 마 루프 동안 구조의 사용을 만들 것입니다. 코드 (단계 8, 9, 10)이 말 사이에 사실이지만 할 일 이후 부분만큼 반복됩니다. 우리는 (한 내용이 공간 때문에 더 많은 단어가 들어 있으므로) 0이 참> ( “”, 내용) 측량기만큼이 단계를 반복합니다. 당신의 If 문에 마 While 루프를 추가합니다.
Do While InStr(content, " ") > 0 Loop
-
다음에, 우리는 먼저 공간의 위치에서 콘텐츠를 시작하는 참여. 우리는이에 대한 중간 기능을 사용합니다.
content = Mid(content, InStr(content, " "))
예를 들어 : 중간 ( “엑셀 VBA”측량기 ( “엑셀 VBA”, “”VBA “)) 줄 것이다”.
-
우리는 다시 문자열을 잘라.
content = Trim(content)
결과 : “VBA”
-
10. 우리 증가 cellWords
cellWords = cellWords + 1
이 마 루프 한 내용이 공간 때문에 더 많은 단어를 포함으로 반복 될 것이지만. 이 예에서, 우리는 할 일을 종료 루프 동안 이후 더 이상 공간을 포함하지 않는 “VBA”! 결과 :이 셀은 2 개 개의 단어가 포함되어 있습니다.
-
하나 개의 셀을 체크 한 후, 우리는 변수 totalWords cellWords에 추가. 이 코드 라인은 루프 동안 계십니까 외부하지만 if 문에 배치해야합니다.
totalWords = totalWords + cellWords
모든 셀이 선택 될 때까지 전체 프로세스는 다음 셀 다시 시작합니다.
-
마지막으로, 우리는를 사용 MSGBOX totalWords의 값을 표시. 이 코드 라인은 다음의 각 루프에 대한 외부에 배치되어야한다.
MsgBox totalWords & " words found in the selected range."
-
테스트 프로그램.
결과 :