(Excel 2013)组合两个单元格值而不超过某些字符限制

问题描述 投票:0回答:1

我试图用excel公式来解决这个问题,但是它太复杂了,因为我需要将工作簿与公式聚集在一起。所以我转向VBA寻求帮助。到目前为止,我发现的所有VBA主要仅用于修剪单个单元字符。

我的项目需要的是:

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

如果LEN(C1)小于81则没有任何修剪。否则,TRIM A1仅在不改变B1的情况下,因此最终结果是LEN(C1)始终小于81。

谢谢。

编辑:Excel Screenshot 1

我试过的是:

- 我将在单元格AA2中的B2上执行“len”,然后在单元格AB2中的C2上执行另一个“len”。 - 然后我在单元格D2中组合了B2和C2。 - 为细胞E2中的细胞D2做另一个“len”。 - 如果E2中的值超过80,那么我将对另一个单元格中的单元格B2做“正确”。将从单元格B2中扣除的值为AA2-80 + AB2。 - 一旦完成,新的装饰B2将与另一个单元中的C2重新组合。

这是太多的新细胞。正如你所看到的,我要隐藏一些构成细胞F2内部细胞的细胞。所以我在这里。用那个字母“E”来突出那个聚光灯,这样Excelman就会来救援。

excel-vba excel-2013 vba excel
1个回答
0
投票

一个非常简单的Excel公式,应该做你想要的

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

即从A1中获取尽可能多的字符,以便在连接到"("&B1&")"时,总数不会超过80个字符,然后将其连接到"("&B1&")"

注意:上面公式中的单元格引用基于您的原始问题。根据截图和您的问题的编辑,公式将是:

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

如果你肯定需要VBA,你可以在VBA中使用相同的函数(即LeftLen)和相同的运算符(即-&),就像在Excel中使用的那样。唯一的问题是MAX,需要用Application.MaxIf声明替换。

© www.soinside.com 2019 - 2024. All rights reserved.