Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/vba/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows Excel 2003/2007行高要素输出错误_Windows_Vba_Excel - Fatal编程技术网

Windows Excel 2003/2007行高要素输出错误

Windows Excel 2003/2007行高要素输出错误,windows,vba,excel,Windows,Vba,Excel,在Excel2003中,在Excel2007中也尝试了这种方法,用户在随机选择的单元格中输入一个表示像素的数字。我想根据像素数重新调整包含单元格的行的大小,但由于Excel 2003和2007使用点作为行高,如何将像素转换为点 我已经使用了这个公式(单元中像素的nr)*0.75,并在vba 6中实现 行(RI).行高=单元格(RI,ColumnIndex).值*0.75 在大多数情况下效果最好,但是,我知道这听起来很疯狂,有时当这个值是5、15、25、35或45,可能是其他数字时,行高最终会重新

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

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

行(RI).行高=单元格(RI,ColumnIndex).值*0.75

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

当我走到一行,右键点击它,行高,同样的事情也会发生。。。功能,输入4,5,4.5点=5 px*0.75,有时行的大小会重新调整为6 px

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

谢谢你花了这么多时间

亲切问候,


radu

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

PointsToScreenPixelsX
PointsToScreenPixelsY
PixelsPerInch
InchesToPoints
CentimetersToPoints

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

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