VBA excel,运行后,首先需要用户选择几个单元格(可能连续也可能分散,但都在同一列),用户确定后,高亮出最大、最小值所在行。找了很多资源,代码还是不会写。求大家帮帮忙,本人实习生,这个对我很重要,谢谢大家了!

解决方案 »

  1.   

    VB6可视化程序设计(无锡职业技术学院)http://download.csdn.net/detail/zhao4zhong1/6824713
      

  2.   

    在Excel 2003中开始记录宏,手动完成所需功能,结束记录宏,按Alt+F11键,查看刚才记录的宏对应的VBA代码。
      

  3.   

    给你一段代码参考。具体的应用中,自己参照着修改:打开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
      

  4.   

    这个用条件格式即可(可以静态/动态设置):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'
    如果单元格区域不确定可以做成动态的.......
      

  5.   

    录制宏,不是是万能的。 有一些东西是“录不下来的”!!!

    不怕录不下来,就怕明明能手动做,就是不能改为用VBA做。
    专指Office2007之后微软悍然冒天下之大不韪去掉了录制宏功能。
      

  6.   

    录制宏,不是是万能的。 有一些东西是“录不下来的”!!!

    不怕录不下来,就怕明明能手动做,就是不能改为用VBA做。
    专指Office2007之后微软悍然冒天下之大不韪去掉了录制宏功能。

    谁说2007之后就去掉了录制宏的功能?(难怪你还强调要用2003版)
    你安装的是“超强阉割版”的 Office?至少,我安装的2007、2010专业版,这个功能还存在。
     (我暂时还没使用过更高版本的)
      

  7.   

    录制宏,不是是万能的。 有一些东西是“录不下来的”!!!

    不怕录不下来,就怕明明能手动做,就是不能改为用VBA做。
    专指Office2007之后微软悍然冒天下之大不韪去掉了录制宏功能。

    谁说2007之后就去掉了录制宏的功能?(难怪你还强调要用2003版)
    你安装的是“超强阉割版”的 Office?至少,我安装的2007、2010专业版,这个功能还存在。
     (我暂时还没使用过更高版本的)
    怪我没说清楚。不是不能录制宏,是录制宏后看不了对应VBA代码。
      

  8.   

    office某个高版本之后就不行了。
      

  9.   

    你的是多高的版本啊!!!
    我的2007、2010,可以录制宏,能录制自然就能看到代码。
    不会是你这老麻雀,居然连Office都不会用了吧。
      

  10.   

    你的是多高的版本啊!!!
    我的2007、2010,可以录制宏,能录制自然就能看到代码。
    不会是你这老麻雀,居然连Office都不会用了吧。

    试试office365?
    不过我也没试过。看来我也有打脸的时候:
    不要迷信书、考题、老师、回帖;
    要迷信CPU、编译器、调试器、运行结果。
    并请结合“盲人摸太阳”和“驾船出海时一定只带一个指南针。”加以理解。
    任何理论、权威、传说、真理、标准、解释、想象、知识……都比不上摆在眼前的事实!
      

  11.   

    刚试了一下,Word 2007和Excel 2007都可以录制并查看宏对应的VBA代码。
    PowerPoint 2007好象不能录制宏。