如何获得范围的全高和宽度,包括边界?

我似乎无法在任何地方find答案。

在VBA中,给定Dim r As Range: Set r = Range("C20:C21")我可以得到r.heightr.width ,其中前者是单元格C20和C21的组合高度,但不包括他们之间的边界的大小。

是否有可靠的方法来获得完整的高度和宽度(例如:单元格的高度和宽度以及这些单元格之间边界的大小)?

谢谢。

我认为你的计算应该是

 testCB.Top = testCB.Top + ((r.Height - testCB.Height) / 2)) 

或者说(不知道你的版本甚至意味着什么)

 testCB.Top = r.Top + ((r.Height - testCB.Height) / 2)) 

这可以得到边界的重量。

 'If all borders are equal, you can take the weight as follow: Range("C20:C21").Borders.Value 'If you want a specific border, you can use as follow: Range("C20:C21").Borders(xlEdgeLeft).Weight 

如果这对你有用,你的计算如下:

 height = Range("C20:C21").Height + _ Range("C20:C21").Borders(xlEdgeBottom).Weight + _ Range("C20:C21").Borders(xlEdgeTop).Weight width = Range("C20:C21").Width + _ Range("C20:C21").Borders(xlEdgeLeft).Weight + _ Range("C20:C21").Borders(xlEdgeRight).Weight 

如果你还想要两个单元格之间的边界为高度,你可以使用如下:

 height = Range("C20:C21").Height + _ Range("C20:C21").Borders(xlEdgeBottom).Weight + _ Range("C20:C21").Borders(xlEdgeTop).Weight + _ Range("C20:C21").Borders(xlInsideVertical).Weight