2017-04-19 7 views
0

사용자가 여러 줄의 텍스트 본문을 입력하는 VBA (단어)에 사용자 양식을 만들었습니다 TextBox1에 저장합니다. 나는 이것을 한 줄짜리 줄로 바꾸고 싶다. 나는 다음과 같은 시도 :사용자 양식의 텍스트 상자에서 여러 줄 문자열 입력을 한 줄 입력 문자열 (VBA 단어)으로 변환하는 방법

'Replace method 
TextBox1.Text = TextBox1.Text.Replace what:=vbFl replacement:="" 

이이 오류를 생성 없지만 필요한 변환을 수행하지 않습니다는 .text

'Replace function 
TextBox1.Text = Replace(TextBox1.Text, vbLf, "") 

에 관련하여 '무효 규정'을 초래한다.

+0

두 번째 시도가이 오류가 발생하지 않는 이유는 올바른 구문을 가지고,하지만 vbLf이하는 긴 아니기 때문에 어떤 문자열을 찾을 수 없습니다 문자열, 그리고 VBA 아마 문자열에 번호를 강제로 관리하고 있지만 당신이 찾고있는 번호가 아닙니다. 내 머리 꼭대기에서 TextBox가 어떤 문자열을 사용하는지 알지 못합니다. Chr (10) 또는 Chr (11) 또는 Chr (10) 및 Chr (13) 일 수도 있고 다른 방법 일 수도 있습니다. 'What : = Chr (11)' – Variatus

+0

@Variatus'vbLF'는 의심 할 여지없이 문자열입니다. 이 컨텍스트에서 사용할 올바른 문자열이 아닙니다. :) (직접 실행 창에서'? TypeName (vbLF)'를 사용하십시오.) –

+0

@David Zemens에게 감사드립니다. 외모는 속일 수 있습니다. – Variatus

답변

1

Word에서 캐리지 리턴도 고려해야합니다. 이 사용자가 원하는 방식으로 일을 세 가지 방법은 다음과 같습니다

'Replace function 
TextBox1.Text = Replace(TextBox1.Text, vbCr + vbLf, "") 
TextBox1.Text = Replace(TextBox1.Text, Chr(10) + Chr(13), "") 
TextBox1.Text = Replace(TextBox1.Text, vbCrLf, "")