我正在使用一个VBA,该VBA应该建立选定范围的单元格,并且只能选择选定范围内的活动单元格。
如果我的选择只包含整列,我已经弄清楚了如何工作。 但是,如果我在活动单元格内的某个范围内进行选择,我将无法正常工作。
是否可以选择包含最少单元格数量的范围。
在这种情况下,查看rng
和rng1
中哪个是“最小”。
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
因此,我只想最后使用两个格式化规则之一(按如下所示进行划分,以了解两个范围的情况),并且仅格式化其中单元格数量最少的范围。
答案 0 :(得分:1)
借助@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