2016-03-04 24 views
0

我想在VBA中使用高度功能,但我得到奇怪的数字。而不是返回范围的高度的,它返回一个范围乘以15。例如,下面的简单的功能的高度:使用VBA高度功能时出现奇怪的数字

Function h(c1 As Range) As Double 
h = c1.Height 
End Function 

会给值15如果c1是一个单一的细胞,将如果c1是两个单元高,则给出30,依此类推。我应该澄清,我正在将此作为更大功能的一部分,但正是这个问题导致了这个问题。我想尽可能地简化功能,看看问题是否仍然存在,并且是否存在。我真的不明白为什么会发生这种情况,我之前使用过高度功能没有任何问题。任何意见将不胜感激, 谢谢

+1

这并不是说奇怪 - 在Excel默认行的高度为15 [分](HTTPS://en.wikipedia .ORG /维基/ Point_(排版))。如果你只想知道你在一个范围内有多少行,使用'c1.Rows.Count' –

回答

1

你是误解什么是身高属性。高度是其在点高度...

从这里.. https://msdn.microsoft.com/en-us/library/office/aa215509%28v=office.11%29.aspx?f=255&MSPPError=-2147217396

返回指定范围内的所有行,以点为单位的高度。如果指定范围中的行不是全部相同的高度,则返回Null。读取/写入变式。 备注

您可以使用Height属性返回单元格范围的总高度。 RowHeight和Height之间的差异包括: 高度是只读的。 如果您返回多行的RowHeight属性,您将获得每个行的行高(如果所有行都是相同的高度)或Null(如果它们的高度不同)。如果您返回多行的高度属性,您将获得所有行的总高度。 示例

此示例将Sheet1上第一行的高度加倍。 。 随着工作表( “工作表Sheet”)行(1) .RowHeight = .RowHeight * 2 结束随着

+0

谢谢,抱歉,愚蠢的错误 –

相关问题