2017-12-30 26 views
0

Ich habe versucht, dies mit Excel-Formel zu lösen, aber es ist zu kompliziert, da ich die Arbeitsmappe weniger Cluster mit Formeln benötigt. Also habe ich mich an VBA um Hilfe gewandt. Bis jetzt war die VBA, die ich gefunden habe, hauptsächlich nur zum Beschneiden einzelner Zellen gedacht.(Excel 2013) Kombinieren von zwei Zellenwert ohne bestimmte Zeichen zu überschreiten

Was ich für mein Projekt benötigen, ist wie folgt:

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

Wenn LEN (C1) weniger als 81 dann nichts Ordnung ist. Sonst, TRIM A1 nur ohne B1 zu ändern, also ist das Endergebnis LEN (C1) immer kleiner als 81.

Danke.

Edit: Excel Screenshot 1

Was ich versucht habe, ist:

-I tun "len" auf B2 in Zelle AA2 dann einen anderen "len" auf C2 in Zelle AB2.
-Dann kombiniere ich B2 und C2 in Zelle D2.
- Ein weiteres "len" für Zelle D2 in Zelle E2.
-Wenn der Wert in E2 80 überschreitet, muss ich "richtig" für Zelle B2 in einer anderen Zelle tun. Der Wert, der von Zelle B2 abgezogen wird, ist AA2-80 + AB2.
- Sobald es fertig ist, wird der neue Trim B2 mit C2 in einer anderen Zelle rekombinieren.

Das sind zu viele neue Zellen. Wie Sie sehen können, muss ich einige Zellen verstecken, die sich in Zelle F2 befinden. So, hier bin ich. Mit diesem Buchstaben "E" strahlt man diesen Scheinwerfer aus, damit Excelman zur Rettung kommt.

+1

Was haben Sie bisher in der Formel versucht? – Ctznkane525

+1

Dies ist eine ziemlich einfache Formel in Excel - warum brauchen Sie VBA? Aber wenn Sie VBA verwenden, sollte der VBA-Code, den Sie gefunden haben, funktionieren, da Sie nur eine Sache (d. H. Den Wert von A1) verkürzen und dann diese mit B1 verketten möchten. Also bitte posten Sie den Code, den Sie versucht haben, und wir können Ihnen helfen, ihn zu korrigieren. – YowE3K

Antwort

0

Eine sehr einfache Excel-Formel, die tun sollten, was Sie wollen, ist

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

dh so viele Zeichen wie möglich von A1 nehmen, so dass, wenn sie "("&B1&")" verketteten wird die Summe nicht 80 Zeichen nicht überschreiten, und dann verketten Sie das mit dem "("&B1&")".

Hinweis: Die Zellbezüge in der obigen Formel basieren auf Ihrer ursprünglichen Frage. Basierend auf dem Screenshot, und die Änderungen auf Ihre Frage, würde die Formel:

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

Wenn Sie auf jeden Fall VBA benötigen, können Sie die gleichen Funktionen nutzen (dh Left und Len) und die gleichen Operatoren (dh - und &) in VBA wie in Excel verwendet werden. Das einzige Problem ist MAX, das mit Application.Max oder mit einer If Anweisung ersetzt werden muss.

Verwandte Themen