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

时间:2015-07-21 22:30:21

标签: excel vba excel-vba size range

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

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

是否有一种可靠的方法来获得完整的组合高度和宽度(例如:细胞的高度和宽度+这些细胞之间边界的大小)?

感谢。

2 个答案:

答案 0 :(得分:0)

我认为你的计算应该是

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

或者更确切地说(不确定你的版本甚至意味着什么)

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

答案 1 :(得分:0)

这可以获得边界的重量。

'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