이 질문은 문자열 조작에 관한 것입니다 내가 str
라는 변수와 결과에있을 입력 문자열을 가정한다 편의를 위해 모양과 아무 상관이 없기 때문에 콘솔에 출력 할 수 있습니다. 필요한 경우 조정하십시오.
기본적으로 두 가지 접근 방식이 있습니다. 첫 번째는 문자열의 일부를 검색 문자열과 Left
및 Mid
에서 검색 할 내장 함수InStr
을 사용
Dim firstWordLocation As Long
Dim secondWordLocation As Long
firstWordLocation = InStr(str, firstWord)
secondWordLocation = InStr(str, secondWord)
If firstWordLocation > 0 And secondWordLocation > 0 Then
Debug.Print Left(str, firstWordLocation + Len(firstWord) - 1) & Mid(str, secondWordLocation)
End If
이 정규 표현식을 사용하는 것입니다 접근하는 또 다른 방법. 그것들은 훨씬 더 강력하고 매우 컴팩트 한 방법으로 복잡한 문자열 조작을 수행 할 수 있습니다. 라이브러리 마이크로 소프트 VBScript 정규 표현식 5.5 다음과 같이, (또한 자세한 내용은 https://stackoverflow.com/a/22542835 참조) 사용할 수있는 RegExp
클래스 제공이 제 1 및 제 2의 내용 입력 문자열을 대체
Dim regex As New VBScript_RegExp_55.RegExp
regex.Pattern = "(.*?" & firstWord & ").*?(" & secondWord & ".*)"
Debug.Print regex.Replace(str, "$1$2")
을 괄호는 Pattern
에 있고, 그 사이의 모든 것을 생략합니다. 예약 된 문자 .*+?()[]{}^$\
은 firstWord
또는 secondWord
에서 발생해야하는 경우 백 슬래시 \
으로 이스케이프해야합니다. 입력 문자열에 줄 바꿈이있는 경우 https://superuser.com/q/399381을 봐야합니다. 당신이 다시 모양이 문자열을 배치하고 VBA를 사용하여 특정 부분을 포맷 할 경우
, 당신은 모양의 각 단일 텍스트 문자를 나타내는 TextRange
의 Character
속성을 사용합니다. 이제 이러한 문자 객체를 사용하여 원하는 형식을 지정할 수 있습니다.
자세한 내용은 https://msdn.microsoft.com/de-de/library/office/ff743845.aspx을 참조하십시오 (해당 설명서는 PowerPoint 용이지만 Word에도 적용됩니다).
instr()을 사용하여 두 키워드의 위치를 찾은 다음 왼쪽(), 오른쪽() 및/또는 중간() 조합을 사용하여 문자열을 조각으로 나눌 수 있습니다. 그런 다음 연결 연산자 (&)를 사용하여 중간 부분을 제외한 모든 것을 다시 묶습니다. 해당 기능에 대한 VBA 설명서를 참조하십시오. –