Sub suozai() Dim rg As Range Set rg = Selection '对选中的三角形区域进行操作,可设置为固定区域 Dim t AsSingle t = 0.1'可以将t设置为单元格的值,为不同的三角形设置不同的阈值 Dim countrows AsInteger Dim countcols AsInteger countrows = rg.Rows.Count countcols = rg.Columns.Count '通如下循环,实现对做差三角形中满足高亮的单元格进行高亮 Dim i, j AsInteger For i = 1To countrows For j = 1To countcols - i + 1 If rg.Cells(i, j).Value > t Then rg.Cells(i, j).Interior.Color = 13551615 EndIf If rg.Cells(i, j).Value < -t Then rg.Cells(i, j).Interior.Color = 13561798 EndIf Next j Next i
'接下来的步骤是把格式刷回原始数据,找到原始数据所在地,可以用数格子的方法,也可以用下面的方法. Dim rg1 As Range Dim c AsString c = rg.Cells(1, 1).Formula '提取做差三角形中第一个单元格的公式 =A-B c = Mid(c, 2) '去掉公式中的等号 A-B d = Split(c, "-")(0) '以减号为分界,分离A,B,并获取A。由于不同类型三角形的公式可能不同,此处可以应用正则表达式进行拓展。学习中 Set rg1 = Range(d).Resize(countrows, countcols) '得到初始数据所在的三角形 rg.Copy rg1.PasteSpecial Paste:=xlPasteFormats, Operation:=xlNone, _ SkipBlanks:=False, Transpose:=False'刷格式 EndSub