Excel 2003/2007 行高功能输出错误

Posted

技术标签:

【中文标题】Excel 2003/2007 行高功能输出错误【英文标题】:Excel 2003/2007 row height feature output error 【发布时间】:2011-12-09 17:13:03 【问题描述】:

在 Excel 2003 中,也在 Excel 2007 上尝试过,在随机选择的单元格上,用户输入一个代表像素的数字。我想根据这个像素数重新调整包含单元格的行的大小,但是由于 Excel 2003 和 2007 使用点作为行高,如何将像素转换为点?

我使用了这个公式(单元格中像素的 nr)* 0.75 并在 vba 6 中实现

行(RI).RowHeight = 单元格(RI, ColumnIndex).Value * 0.75

在大多数情况下效果最好,但是,我知道这听起来很疯狂,有时当这个值是 5 或 15 或 25 或 35 或 45,也许是其他数字时,行高最终会重新调整为 6、16, 26, 36, 46 像素,模拟 Excel 没有该值对应的点数。

当我转到一行时会发生同样的事情,右键单击它,行高...特征,输入 4,5,4.5 点 = 5 px * 0.75,有时会重新调整行大小到 6 像素。

我是真的疯了还是你以前遇到过这种现象?

感谢您的所有时间,

亲切的问候,

拉度

【问题讨论】:

【参考方案1】:

你没疯,Excel 中的许多数字没有我发现的逻辑。但是,以下方法和属性可能会有所帮助:

PointsToScreenPixelsX
PointsToScreenPixelsY
PixelsPerInch
InchesToPoints
CentimetersToPoints

我应该补充一点,从像素到点的转换是特定于字体和字体大小的。

【讨论】:

非常感谢托尼,所以你说的是 Rows(RI).RowHeight = Something.PointsToScreenPixelsX(Cells(RI, ColumnIndex).Value * 0.75) ??? 您能否解释一下:我应该补充一点,从像素到点的转换是特定于字体和字体大小的。 像素是屏幕上的点,不会改变给定屏幕的大小。更高分辨率的屏幕具有更小和更多的像素。点标识字体的大小,Arial 10 小于 Arial 12。某些字体比其他字体大,因此 XXXX 10 不一定与 YYYY 10 大小相同。请尝试谷歌搜索“打印机点”以获得更完整的解释。 我想我误导了你。多年来,我不需要设置单元格的宽度和高度。我记得那些很难发现的方法的名字,除非你知道它们的名字,所以我把它们传给了你。我不记得我是如何使用它们的。和他们一起玩了最后一个小时,我不确定我是否使用过它们。 PointsToScreenPixels 方法仅在 Windows 上运行。我看不到其他例程也提供任何有用的东西。也许如果你能解释你想要达到的目标,我会记住一些有用的东西。

以上是关于Excel 2003/2007 行高功能输出错误的主要内容,如果未能解决你的问题,请参考以下文章

java 如何 判断 读入excel文件的版本(2003?2007?) 请高手指点

java 使用poi操作Excel(2003,2007)实现数据批量导入的一般思路

office2003-2007 绿色版 出错 文件丢失(未解决)

聊一聊 Sketch 与 iOS 文字的行高

office2003/2007/2010如何卸载干净

如何给excel设置密码