作者:灰色头像6888 | 来源:互联网 | 2023-05-21 16:53
我正在Access数据库中生成VBA子例程,该例程会生成Excel文件,但是当我使用以下方法修改列宽时:
Range("A:A").ColumnWidth = ...
根据测量单位产生混合结果。Excel在选项中设置的默认度量是厘米。我尝试输入以点和厘米为单位的值,但是结果太宽或太小(请参见下文):
Range("A:A").ColumnWidth = 3.07 'In Centimeters - Too small
Range("A:A").ColumnWidth = 87.02 'In Points - Too big
根据文档
Range.ColumnWidth
,以点为计量单位(宽度为0)进行设置。无论我输入什么值,结果都不一样。
1> Dick Kusleik..:
.ColumnWidth属性是指您可以使用默认字体在单元格中键入的零个数,而不会超出该单元格的宽度。
在一个新的工作簿中,假设您的默认列宽为8.43,请键入'000000000
一个单元格,您会看到第9个零点溢出了右侧的单元格边框大约为零。
要以点为单位设置像元宽度,请将.ColumnWidth设置为points / cell.Width * cell.ColumnWidth
。这是要解决的问题,您必须将它设置三下才能使其接近,但几乎永远不会准确。因此,将.ColumnWidth分配放入For Next循环中,并将其设置三遍。
请注意,.Width属性以磅为单位,您无法进行设置。.ColumnWidth属性采用crazy-zero-width-measurement,您可以进行设置。我不知道为什么要花三遍。
请参阅http://dailydoseofexcel.com/archives/2004/06/01/column-widths-in-points/了解有关“三倍”情况的一些测试结果。