Excel VBA:确定范围是水平还是垂直

我想创build一个function,其中包括一个范围作为input。 这个范围是1行? 列或1列? 行。 换句话说,这将是“一维”的 – 横向或纵向。

根据是H还是V,进行一定的计算。 我如何确定传递的范围是水平的还是垂直的?

这个怎么样:

Function RangeIsVertical(rng As Range) As Boolean RangeIsVertical = IIf(rng.Columns.Count = 1, 1, 0) End Function Sub Test() Debug.Print RangeIsVertical(Range("A1")) //True Debug.Print RangeIsVertical(Range("A1:A10")) //True Debug.Print RangeIsVertical(Range("A1:B2")) //False End Sub 

如果Range.Columns.Count=1那么它是垂直的。 如果Range.Rows.Count=1 ,它是水平的(假设,如你所说,你只有行或列)。