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.