首页 > 解决方案 > Excel (VBA?) - 自定义单元格格式、数字和文本间距

问题描述

我正在制作一个跟踪报告编号的 Excel 表格。报告编号都遵循相同的顺序。XX########X##,其中 X 是一个字母,# 是一个 0 到 9 的数字。所有报告编号都是 2 个字母后跟 8 个数字,然后是 1 个字母,然后是 2 个数字。

数字/字母不是随机的,而是识别报告中包含的内容。因此,习惯上以特定的节奏来引用它们,即:XX ### ##### X##。正如你所看到的,这种模式在大脑上比上面的要容易得多。就像电话号码都以特定的###-#### 模式或SS 是### ## #### 一样。

无论如何,我希望这些报告编号所在的列用空格“显示”。我将 display 放在引号中,因为我不想在单元格中实际使用空格字符。这将影响下游电子表格的其他部分。

Excel 内置了单元格格式选项(单元格格式 > 自定义)。我可以使用零 (0) 创建间距模式。例如,如果我的文件报告都是数字“1234567891234”,我可以输入自定义模式为“00 000 00000 000”,它将“显示”“12 345 67891 234”。但是,我不能让它与文本和数字一起使用。我努力了 ”*”, ”@”, ”?” 但没有运气。我无法在 VBA 中找到解决方案,但我怀疑这是要走的路。谢谢!

标签: excelvbacell-formatting

解决方案


单元格包含文本。无法使用数字格式更改文本格式。文本将始终显示为单元格中输入的内容。如果您想查看空格,则单元格中需要有空格。

您没有指定数据的来源。如果不是手动输入,而是从另一个系统加载,您可以使用公式在特定位置添加空格,然后隐藏原始列。

=LEFT(A1,2)&" "&MID(A1,3,3)&" "&MID(A1,6,5)&" "&RIGHT(A1,3)

或者

=REPLACE(REPLACE(REPLACE(A1,11,0," "),6,0," "),3,0," ")

在此处输入图像描述


推荐阅读