选择最小范围



我正在使用一个VBA,它应该形成选定范围的单元格,并且只形成选定范围中的活动单元格。

如果我的选择只包含整列,我已经想好了如何处理它。但如果我的分泌量在活性细胞内的某个范围内,我就无法让它发挥作用。

有没有一种方法可以选择包含最小单元格数的范围。在这种情况下,查看rngrng1中哪一个是"最小的"。

Sub FormatColumn()
Dim rngMyRange As Range
Dim rng As Range
Dim Start As Range
Set rngMyRange = Selection
Dim A As Range, B As Range
With rngMyRange
i = .Rows(1).Row
j = .Columns(1).Column
ii = .Rows(.Rows.Count).Row
jj = .Columns(.Columns.Count).Column
End With
Set A = Cells(i, j)
Set B = Cells(ii, jj)
Set C = Cells(i, jj).End(xlDown)
Set rng = Range(A, B)
Set rng1 = Range(A, C)
With rng
.Font.Bold = True
End With
With rng1
.Interior.ColorIndex = 20
End With
End Sub

因此,我只想在最后有两个格式化规则中的一个(像这样划分,看看这两个范围发生了什么(,并且只格式化其中单元格数量最小的范围

在@SRJ 的帮助下

Sub FormatColumn()
Dim rngMyRange As Range
Dim rng As Range
Dim Start As Range
Set rngMyRange = Selection
Dim A As Range, B As Range, rng1 As Range, C As Range
Dim i As Long, j As Long, ii As Long, jj As Long
With rngMyRange
i = .Rows(1).Row
j = .Columns(1).Column
ii = .Rows(.Rows.count).Row
jj = .Columns(.Columns.count).Column
End With
Debug.Print i, j, ii, jj
Set A = Cells(i, j)
Set B = Cells(ii, jj)
Set C = Cells(i, jj).End(xlDown)
Set rng = Range(A, B)
Set rng1 = Range(A, C)
If rng.count < rng1.Count Then
With rng
.Font.Bold = True
End With
Else
With rng1
.Interior.ColorIndex = 20
End With
End If
End Sub

最新更新