Excel中列宽知多少

在无法预知单元格内容的情况下,一般都会使用自适应列宽,代码如下。

ActiveSheet.Columns(1).EntireColumn.AutoFit

这样操作会带来一个潜在问题,如果该列中某个单元格被意外填充了长字符串,将导致整个列宽都非常大,所以很多时候会在代码中直接指定列宽的值,设置第一列列宽代码如下。

Columns(1).ColumnWidth = 10

大家可能会想到,Range对象有Width属性,一列之中单元格宽度肯定是一致的,是否可以直接使用如下代码进行设置呢?

Range(1, 5).Width = 50

Range对象的Width属性是只读的,无法改写,所以只能使用ColumnWidth属性设置列宽。
搞明白用哪个属性了,那么这个10的计量单位又是什么呢?一个列宽单位等于常规样式中一个字符的宽度, 对于比例字体(指字符宽度不尽相同的字体,与之相对的是等宽字体),会使用字符 0(零)的宽度。设置列宽为10之后的效果如下图所示。第一列的列宽整好显示十个0(A1单元格),A2单元格中有11个0,最后一个0显示在A列右边界之外。

此时使用Range(1, 1).Width查询单元格的宽度,其结果为 67.875,这又是什么鬼?明明设置的列宽为10,怎么得到这么一个结果!?问题的根源是,Range对象的Width属性返回值单位是磅(Point简写为Pt,这是一个绝对计量单位,等于 1英寸/72),而不是设置ColumnWidth属性时的列宽单位。使用Range(1, 1).ColumnWidth属性时,返回值为10。
讲到这里,大家就明白ColumnWidth属性和Width属性的区别了吧!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值