M
可以利用GetSubtractRng这个计算差集的函数来得到右下角三角形的范围
Function GetSubtractRng(r1 As Range, r2 As Range)
Dim r As Range, r3 As Range
For Each r In r1
If Intersect(r, r2) Is Nothing Then
If r3 Is Nothing Then
Set r3 = r
Else
Set r3 = Union(r, r3)
End If
End If
Next
Set GetSubtractRng = r3
End Function
Sub RBTriangle()
Dim row As Integer
Dim col As Integer
row = Selection.Rows.Count
col = Selection.Columns.Count
Dim rg As Range
Dim targetRg As Range
Dim i As Integer
Set rg = Selection.Resize(row, 1)
Set targetRg = Selection.Resize(row, 1)
For i = 1 To col - 1
If row - i > 0 Then Set targetRg = Union(targetRg, rg.Offset(0, i).Resize(row - i, 1))
Next i
Set targetRg = GetSubtractRng(Selection, targetRg)
targetRg.Select
End Sub