有条件地格式化单元格左对齐,其中包含由多行分隔的文本

有条件地格式化单元格左对齐,其中包含由多行分隔的文本

我正在尝试编写条件格式,以处理通常位于居中范围内的单元格中的左对齐文本。单元格中的数据可能如下所示,每行通过按 分隔alt + enter。整个范围都居中,只有标题中包含单词 comment 的一个单元格应居左居中。

• Reached out 11/1
• Responded on 11/2

我搜索了较旧的帖子,发现有一个人建议在自定义格式代码中使用它:

;;;@*[space] 

但是使用 uncodealt + 2 + 5 + 5插入空格会将我的数据变成一系列 # 符号。想知道这是否因为新行而无法正常工作,以及是否有解决方法

答案1

我相信您无法使用非 VBA 解决方案来做到这一点。

条件格式本身不会设置任何对齐格式,因此必须使用“数字”格式工具。

不幸的是,无法设置文本的中间部分,只能设置开头或结尾。开头不会有帮助,因为它会将文本推到右侧。

由于您有多行数据,因此结尾也无济于事。因此结尾只是最后一个内部行的结尾。而不是其他内部行的结尾。所有行都将居中,并且只有最后一个内部行将向左对齐。即使使用 Alt-255 以外的其他字符也会产生同样的效果。

我确实遇到了您描述的“#####”类型的问题。Alt-255 的空白对我来说很好用,除了它只影响最后一行的问题。但比我最初尝试的更长的文本显示正常。使用您显示的短语,它确实做了“#####”的事情。但是,加宽列可以解决这个问题。但是......

  1. 你可能根本做不到这一点。
  2. 在没有特别格式化的情况下,适合 13.44 大小列的文本在格式化时需要 26.00 大小的列,并使用 Alt-255 字符(如图所示)。即使您可以加宽一些,也可能无法加宽那么多。

然后 Alt-255 字符就不再起作用了。我使用的原始文本(在其中起作用)在我开始调整列宽时就停止了。无论如何,最后一行都居中。复制单元格并正常粘贴到默认大小的列中,它又起作用了。但重新调整大小后就起作用了。我意识到左边缘从未真正“左对齐”,而是更像“左缩进对齐”的外观。所以,不是很难向左移动,而是稍微往上一点,左边出现了一些空白。

而且格式必须添加“X-many”空格,Excel 内部决定要添加多少个空格,不知道它是如何选择多少个空格的,但那个字符串是居中的,而不是左对齐的,因此左边有空格。将列加宽很多显示基本居中仍然发生。有点像较小的数字似乎有很多重要的模式,但如果你把数字变大,它们就会完全破坏。

因此,当字符串较短时,格式似乎只会使字符串左对齐。当必须加宽列以容纳足够长的文本(如您的文本)时,居中变得足够明显,让我猜想发生了什么。而且更宽的列证明了这一点。

因此,该格式化字符串在任何情况下都不起作用。对于相当短的字符串,它足够了,对我来说是 6 个字符,一个“l”(“el”),但不适合你的文本。

这基本上关闭了甚至一个可以相当接近地满足您的需求的选项。

VBA 可以为您完成此操作。用户单击按钮,它会遍历,如果只有一行,它会将文本居中,如果有多行,它会将其左对齐。(因此对现有数据的编辑会被捕获并适当对齐。)人们认为它应该快如闪电。但它需要操作员操作。有多种方法可以自动化“单击时”操作系列,但存在大量陷阱,因此...

但是“表单侧”技术呢?我相信您无法获得想要的结果,除非显示非常短的数据,而且即使这样,也只是“足够接近政府工作”。

(“显示短数据”是因为即使只输入一个日期并在数字前添加格式字符串也会触发这种情况,就像文本是实际输入的而不是由 Excel 输入的一样。Excel 处理的是生成的显示字符串,而不是“物理上”存在的数据。)

相关内容