防止在Excel中显示的哈希符号(#),而不更改单元格格式或宽度

时间:2016-07-08 01:36:46

标签: excel vba hash format

我有以下Excel VBA代码:

Sheet1.Columns.ColumnWidth = 8.14
Sheet1.Rows.EntireRow.RowHeight = Sheet1.Cells(1).Width
Sheet1.Cells.WrapText = True
Sheet1.Cells.NumberFormat = "F0 P0 C0" & vbLf & "00 00 00"
Sheet1.Cells.Value = 123456789

前两行使得我的纸张中的单元格成为8.14个水平点的完美正方形,以下行意图使每个单元格看起来像这样(也就是在视觉上显示9位数字"分隔"部分内同一个细胞):

F1 P2 C3
45 67 89

问题在于Excel取代了我的号码(由于它的感知长度,因此它应该完全符合2行上8.14点大小的单元格,因为它包含了字符),因为它具有散列符号(#)我不想要那个。

有没有办法通过Excel设置或VBA代码来防止这种自动行为,而无需将单元格格式更改为' General'或者'文字'或增加细胞的宽度?

现在我已经看过这个问题,但所有的答案都提到了改变单元格格式或大小,这是我无法做到的,原因如下:

  • 这张图片的意图是或多或少的地理位置"地图",其中每个单元格都是该地图上的一个点,所以我自然需要尽可能多的"点&#34 ;尽可能显示在Excel的可见部分中。如果我使单元格(正方形)变大,我几乎不能将10x4网格放入可见部分,100%缩放 - 因为我必须将单元格的先前大小加倍到一个巨大的124像素,以便Excel可以显示我的号码未加改变

  • 如果我将格式更改为' Text' (又名字符串单元格值),我的Excel文件变得很大(cca.1MB)并且几乎无法使用,因为地图大约是255x128"点"。与相同数量的文本' /字符串格式化单元格相比,255x128数字格式化单元格的工作速度极快

  • 如果我将格式更改为' General'或多或少与上面的故事相同,而且,我不能使用自定义格式来分离"我的编号部分如我的例子所示(是的,这是预期的外观)。

编辑:在检查http://datapigtechnologies.com/blog/index.php/forcing-carriage-return-in-custom-date-format/时,我发现了某个Dave(归功于他),这也是我问题的解决方案:

如果你试图缩小列宽,你会发现在你(或我)认为你应该之前你会看到####的方式。但稍微改变可以解决这个问题。在格式单元格对话框的对齐选项卡上,关闭wraptext(如果它已打开)。打开“缩小到适合”,然后打开wraptext。

我尝试了它并且它有效! VBA代码同样简单 - 在我的初始代码完成之后添加下面的代码:

Sheet1.Cells.WrapText = False
Sheet1.Cells.ShrinkToFit = True
Sheet1.Cells.WrapText = True

我不想"作弊"并回答我自己的问题,所以我把它写成我原来帖子的编辑。

0 个答案:

没有答案
相关问题