2017-12-30 38 views
0

저는이 문제를 Excel 공식을 사용하여 해결하려고했지만 통합 문서가 수식과 함께 덜 복잡하기 때문에 너무 복잡합니다. 그래서 나는 VBA에 도움을 청했습니다. 지금까지 내가 찾은 모든 VBA는 주로 단일 셀 문자 만 트리밍하기위한 것이 었습니다. 다음과 같이 내 프로젝트에 필요한 무엇(Excel 2013) 특정 문자를 초과하지 않고 두 셀 값을 결합합니다.

은 다음과 같습니다

A1-Name 
B1-Colour 
C1-Name(Colour) 

LEN (C1)는 이하 81 다음 아무것도 트림없는 경우. 그렇지 않으면 TRIM A1은 B1을 변경하지 않고 최종 결과가 항상 LEN (C1)보다 작습니다.

감사합니다.

편집 : Excel Screenshot 1

내가 시도한 것은 :

- 난 세포 AB2에서 C2에 다음 세포 AA2에서 B2의 다른 "렌"을 "렌"을 할 것입니다.
- 그런 다음 셀 D2에서 B2와 C2를 결합합니다.
- 셀 E2의 셀 D2에 다른 "len"이 없습니다.
-E2의 값이 80을 초과하면 다른 셀의 셀 B2에 대해 "올바르게"수행해야합니다. 셀 B2에서 차감되는 값은 AA2-80 + AB2입니다.
- 완료되면 새로운 트림 B2가 다른 셀에서 C2와 재결합됩니다.

너무 많은 새 셀입니다. 보시다시피, 저는 셀 F2 안에있는 것을 구성하는 셀을 숨기려고합니다. 그래서 나는 여기있다. Excelman이 구출에 올 ​​수 있도록 그 편지 "E"로 스포트 라이트를 털어 놓으십시오. 당신이 원하는 일을해야

+1

지금까지 수식에서 무엇을 시도해 보셨습니까? – Ctznkane525

+1

이것은 Excel에서 매우 간단한 수식입니다 - 왜 VBA가 필요합니까? 그러나 VBA를 사용하는 경우 발견 한 VBA 코드가 작동해야합니다 (예 : A1의 값) 한 번만 단축 한 다음 B1과 연결하면됩니다. 시도한 코드를 게시 해주십시오. 문제를 해결하도록 도와 드리겠습니다. – YowE3K

답변

0

아주 간단한 Excel 수식이

=LEFT(A1,MAX(0,78-LEN(B1))) & "(" & B1 & ")" 

"("&B1&")"에 연결될 때, 총 80자를 초과하지 않도록 즉, A1에서 가능한 한 많은 문자를 가지고 그런 다음이를 "("&B1&")"에 연결하십시오.

참고 : 위 공식의 셀 참조는 원래 질문을 기반으로합니다. 스크린 샷 및 질문에 대한 편집을 바탕으로, 공식은 다음과 같습니다 당신은 확실히 VBA 필요한 경우

=LEFT(B2,MAX(0,78-LEN(C2))) & "(" & C2 & ")" 

, 당신이 (동일한 기능 (예 : LeftLen)와 같은 연산자를 사용할 수 있습니다 즉 -&)를 Excel에서 사용되는 VBA로 변환합니다. 유일한 문제는 MAX이며 Application.Max 또는 If 문으로 대체해야합니다.