给你一段代码参考。具体的应用中,自己参照着修改:打开VBE,添加入一个(或使用现有的)标准模块,粘贴下面的这段代码。 然后,按你说的“在一列中选定多个单元格(可以是“分散”的)”, 再按“ Alt + F8 ”,选定 FindMaxMin过程,执行它,看看效果。 Public Sub FindMaxMin() Dim objCMax As Range Dim objCMin As Range Dim i&, u As Long Dim dMax As Double Dim dMin As Double Dim dVal As Double u = Selection.Cells.Count If (u < 2&) Then MsgBox "请选定多个单元格后执行!", 48 Exit Sub End If Set objCMax = Selection.Cells(1, 1) Set objCMin = objCMax dMax = Val(objCMax.Value) dMin = dMax For i = 2& To u dVal = Val(Selection.Cells(i, 1).Value) If (dVal > dMax) Then dMax = dVal Set objCMax = Selection.Cells(i, 1) ElseIf (dVal < dMin) Then dMin = dVal Set objCMin = Selection.Cells(i, 1) End If Next With ActiveSheet.Rows(objCMin.Row).Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 15773696 End With With ActiveSheet.Rows(objCMax.Row).Interior .Pattern = xlSolid .PatternColorIndex = xlAutomatic .Color = 255 End With Set objCMax = Nothing Set objCMin = Nothing End Sub
这个用条件格式即可(可以静态/动态设置):Option Explicit Sub test() '''测试代码 SetMaxAndMinHighLight Sheet1.Range("b1:b18") End Sub Sub SetMaxAndMinHighLight(Rng As Excel.Range) ''''这段代码只需要执行一次即可 On Error Resume Next With Rng.FormatConditions .Delete .Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=MAX(" & Rng.Address & ")" .Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=MIN(" & Rng.Address & ")" End With With Rng.FormatConditions(1) .Font.Bold = True ''''''''''粗体 .Font.Color = vbWhite ''''''白色 .Interior.Color = vbRed ''''背景色---红色 End With With Rng.FormatConditions(2) .Font.Bold = True ''''''''''粗体 .Font.Color = vbWhite ''''''蓝色 .Interior.Color = vbBlue '''背景色---蓝色 End With End Sub' 如果单元格区域不确定可以做成动态的.......
然后,按你说的“在一列中选定多个单元格(可以是“分散”的)”,
再按“ Alt + F8 ”,选定 FindMaxMin过程,执行它,看看效果。
Public Sub FindMaxMin()
Dim objCMax As Range
Dim objCMin As Range
Dim i&, u As Long
Dim dMax As Double
Dim dMin As Double
Dim dVal As Double u = Selection.Cells.Count
If (u < 2&) Then
MsgBox "请选定多个单元格后执行!", 48
Exit Sub
End If
Set objCMax = Selection.Cells(1, 1)
Set objCMin = objCMax
dMax = Val(objCMax.Value)
dMin = dMax
For i = 2& To u
dVal = Val(Selection.Cells(i, 1).Value)
If (dVal > dMax) Then
dMax = dVal
Set objCMax = Selection.Cells(i, 1)
ElseIf (dVal < dMin) Then
dMin = dVal
Set objCMin = Selection.Cells(i, 1)
End If
Next
With ActiveSheet.Rows(objCMin.Row).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 15773696
End With
With ActiveSheet.Rows(objCMax.Row).Interior
.Pattern = xlSolid
.PatternColorIndex = xlAutomatic
.Color = 255
End With
Set objCMax = Nothing
Set objCMin = Nothing
End Sub
Sub test()
'''测试代码
SetMaxAndMinHighLight Sheet1.Range("b1:b18")
End Sub
Sub SetMaxAndMinHighLight(Rng As Excel.Range)
''''这段代码只需要执行一次即可
On Error Resume Next
With Rng.FormatConditions
.Delete
.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=MAX(" & Rng.Address & ")"
.Add Type:=xlCellValue, Operator:=xlEqual, Formula1:="=MIN(" & Rng.Address & ")"
End With
With Rng.FormatConditions(1)
.Font.Bold = True ''''''''''粗体
.Font.Color = vbWhite ''''''白色
.Interior.Color = vbRed ''''背景色---红色
End With
With Rng.FormatConditions(2)
.Font.Bold = True ''''''''''粗体
.Font.Color = vbWhite ''''''蓝色
.Interior.Color = vbBlue '''背景色---蓝色
End With
End Sub'
如果单元格区域不确定可以做成动态的.......
不怕录不下来,就怕明明能手动做,就是不能改为用VBA做。
专指Office2007之后微软悍然冒天下之大不韪去掉了录制宏功能。
不怕录不下来,就怕明明能手动做,就是不能改为用VBA做。
专指Office2007之后微软悍然冒天下之大不韪去掉了录制宏功能。
谁说2007之后就去掉了录制宏的功能?(难怪你还强调要用2003版)
你安装的是“超强阉割版”的 Office?至少,我安装的2007、2010专业版,这个功能还存在。
(我暂时还没使用过更高版本的)
不怕录不下来,就怕明明能手动做,就是不能改为用VBA做。
专指Office2007之后微软悍然冒天下之大不韪去掉了录制宏功能。
谁说2007之后就去掉了录制宏的功能?(难怪你还强调要用2003版)
你安装的是“超强阉割版”的 Office?至少,我安装的2007、2010专业版,这个功能还存在。
(我暂时还没使用过更高版本的)
怪我没说清楚。不是不能录制宏,是录制宏后看不了对应VBA代码。
我的2007、2010,可以录制宏,能录制自然就能看到代码。
不会是你这老麻雀,居然连Office都不会用了吧。
我的2007、2010,可以录制宏,能录制自然就能看到代码。
不会是你这老麻雀,居然连Office都不会用了吧。
试试office365?
不过我也没试过。看来我也有打脸的时候:
不要迷信书、考题、老师、回帖;
要迷信CPU、编译器、调试器、运行结果。
并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
PowerPoint 2007好象不能录制宏。