EXCEL问题讨教

来源:百度知道 编辑:UC知道 时间:2024/05/12 10:50:53
EXCEL中如果A1=13689,那么这个数字排列是上升的;就是1≤3≤6≤8≤9,因此我在B1中使用条件格式进行涂色,那么条件公式是怎么样的呢?若A1=988661,也是9≥8≥8≥6≥6≥1,也要进行涂色,请问大侠公式如何呢

这个问题用条件格式是不好实现的,不过可以用VBA来实现。

1、ALT+F11进入VBA编辑器,
2、在左上角的工程资源管理器(如果工程资源管理器没有出来,按组合键ctrl + R调出来),双击sheet1,在右侧的空白代码区粘贴下面代码。

Sub 数字升序()
Dim myrange As Range
Set myrange = Application.InputBox("请选择要设置格式的列", Type:=8)
Dim rng As Range
maxrow = Range(Left(myrange.Address(1, 0), 1) & "65536").End(xlUp).Row
For k = 1 To maxrow
n = 0
Set rng = Range(Left(myrange.Address(1, 0), 1) & k)
ReDim arr(1 To Len(rng.Value))
For m = 2 To Len(rng.Value)
If Mid(rng.Value, m, 1) < Mid(rng.Value, m - 1, 1) Then
n = 1
Exit For
End If
Next
If n = 1 Then
rng.Interior.Pattern = xlNone
Else
rng.Interior.Color = RGB(255, 0, 0)
End If
Next
End Sub

3、摁F5运行看看效果。
4、我们可以在工作表中插入一个椭圆形,然后右键→指定宏,选择刚才粘贴进去的“数字升序”宏。这样下次就直接摁这个椭圆形就可以了。