为什么Excel VBA行高度不等于范围高度

为什么Excel VBA行高度不等于范围高度,excel,vba,Excel,Vba,以下两种方法返回不同的结果,我试图理解两者之间的关系 方法1: 我通过右键单击行来手动设置行高度。我将其中几行的高度相加,得到一系列行的总高度 方法2: 我使用VBA中的Range.Height属性获取该行集合的总高度 如果我将范围简化为一行,则在手动行高度不是3的倍数,但关系似乎不是线性的情况下,情况会有所不同 获取范围高度的代码: Sub range_height() MsgBox Range("A1").Height End Sub 将第1行高度设置为15,r

以下两种方法返回不同的结果,我试图理解两者之间的关系

方法1: 我通过右键单击行来手动设置行高度。我将其中几行的高度相加,得到一系列行的总高度

方法2: 我使用VBA中的Range.Height属性获取该行集合的总高度

如果我将范围简化为一行,则在手动行高度不是3的倍数,但关系似乎不是线性的情况下,情况会有所不同

获取范围高度的代码:

Sub range_height()
    MsgBox Range("A1").Height
End Sub
将第1行高度设置为15,range_height返回一个15的消息框

设置行1高度=20,范围\高度返回19.5的消息框


我的最终目标是能够在一个范围内添加填充,这样当我复制到PowerPoint中时,我就有了相同的尺寸,并且我的幻灯片看起来很好看。我可以通过反复试验来做到这一点,但我觉得一定有更好的方法。

我无法重现您的问题。您的过程
range\u height
始终精确显示我手动调整行的内容。如果我选择100行相同高度,则
范围(“A1:A100”)。高度显示一行高度的100倍。在这里工作得很好无意冒犯,但可能是您使用笔记本上的触摸板手动设置高度,因此无法正确设置高度?无意冒犯,但这不是我的问题。我在笔记本电脑上使用外围键盘和鼠标,使用Excel 365。你是否测试了各种高度,每次都得到了正确的数字?我正在尝试思考在我的实例中会有什么影响。与其手动设置高度,为什么不以编程方式尝试呢?我正在格式化表格,这些表格最终会出现在PowerPoint幻灯片上。有一个格式相同的汇总表,必须显示在相同的位置,但每个汇总表上也存在不同的信息。需要一些手动格式才能使每个项目看起来很好,但额外的距离是我需要控制的变量。我可以尝试,但它会带来更多的复杂性,并失去灵活性。@Ackshooiry是的,我尝试了不同的高度,总是完全相同。我唯一能想象的是,当你松开鼠标按钮时,你将鼠标移动了一个像素。像素和高度的比例是多少?如果我将高度设置为10,这将产生20个像素(我认为这会随着屏幕分辨率的变化而变化)。因为您只能手动设置全像素(因为您的鼠标只能移动全像素),所以问题可能就在这里。