VBA 특정 문자로 문자열 제거


0

나는

String str = "abc#daso.xlx". 

"#"앞에 모든 문자를 제거하고 싶습니다.

str -> "#daso.xlx" . 

"#"앞에있는 문자열의 길이를 변경할 수 있기 때문에 왼쪽 또는 오른쪽 기능을 사용할 수 없습니다. Split () 메서드를 사용하려고 생각하고 있지만 다른 방법을 찾지 못하면 마지막 선택이 될 것입니다. VBA에서 Array를 사용하고 싶지 않습니다.

답변:


2

mid와 instr의 조합 사용

pos = InStr(yourString, "#")
newString = Mid(yourString, pos)

첫 번째 행은 문자열에서 첫 번째 행의 위치를 ​​찾습니다. 두 번째 부분은 해당 위치에서 문자열 끝에 새로운 문자열을 지정합니다.


주제에 대한 VBA 관련 질문 수퍼 유저 - 더 복잡한 것이 더 나을지라도 스택 오버플로
Sathyajith Bhat

오, InStr이 색인을 반환하는지 몰랐습니다. 1 개의 질문을 더 할 수 있습니까? 내 문자열에 "#"이 포함되어 있지 않으면 첫 줄에 무슨 일이 일어 났을까요? 오류 메시지가 나타나거나 일부 다른 값을 반환합니까? 감사 Sathya anw.
user224174

InStr은 String1이 String1 (InStr (String1, String2) 형식으로 가정)이 아닌 경우 0을 반환하고, VBA 문자열은 0으로 인덱싱되지 않으므로 InStr이 0을 반환하는지 확인하는 것은 몇 가지 상황을 검사하는 좋은 방법입니다. String1은 String1에 없으며 InStr은 String1이 ""이거나 Nothing이고 String2가없는 경우 0을 반환합니다.
SBI

-3

이 시도

str$ = "abc#daso.xlx"

dim i%

i=instr(str, "#")

if i > 0 then str = mid(str, i)

1
당신은 사실상 다른 대답을 반복했습니다.
Rhys Gibson
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.