分享

跟烟花入门VBA之66:单元格对象Range(十)

 fzchenwl 2015-04-01

今天我们聊聊单元格中的Clear家族,该家族成员极具破坏性。

  在VBA中,有一点大家需要注意,当用代码操作对象后(典型的工作簿,工作表,单元格)没有撤消一说。
  万能的Ctrl+Z在这是不起作用的(当然恢复还是有方法的,不过得自己来写这个恢复的过程)。
  大家慎用,万一哪天说数据给清没了,找我也无济于事。

  Clear 方法

  清除整个对象。

  返回值: Variant

  清除指定对象的内容,格式,批注,相当于“全部清除”命令。

  示例:

  Dim rg As Range

  With Range('a3:e14')

     .Value = '=row()'

     For Each rg In .Cells

         If rg.Comment Is Nothing Then

             rg.AddComment rg.Value & ''

         End If

     Next

     MsgBox '确定后,开始清除A3:E14单元格区域', vbOKOnly

     .Clear

  End With

  先在单元格区域内填入公式,然后添加批注,最后再调用clear方法。


  ClearComments 方法

  清除指定区域的所有单元格批注。

  示例:

    Dim rg As Range

    With Range('a3:e14')

       .Value = '=row()'

       For Each rg In .Cells

           If rg.Comment Is Nothing Then

               rg.AddComment rg.Value &''

           End If

       Next

       MsgBox '确定后,开始清除A3:E14区域内的批注', vbOKOnly

       .ClearComments

    End With


  ClearContents 方法

  清除区域中的内容(公式),但保留区域中的格式设置。

  示例:

    With Range('c3:g20')

       .Clear

       .Value = 1

       .Interior.Color = vbBlue

       .Font.Bold = True

       .Borders.LineStyle = xlContinuous

       .Cells(1).AddComment 'test'

       MsgBox '确定后,清除C3:G20内容'

       .ClearContents

       MsgBox '内容清除完成,重新填入公式,注意格式设置'

       .Value = '=row()&column()'

    End With


  ClearFormats 方法

  清除对象的格式设置。

  示例:

    With Range('c3:g20')

       .Clear

       .Value = '=row()^2*column()'

       .NumberFormat = 'yyyy-m-d'

       .Interior.Color = 49407

       .Font.Bold = True

       .Borders.LineStyle = xlContinuous

       .Cells(1).AddComment 'test'

        MsgBox '确定后,清除C3:G20区域的格式'

       .ClearFormats

       MsgBox '格式清除完成'

    End With


  ClearHyperlinks 方法

  删除指定区域中的所有超链接,但是格式还是保留在。

  示例:

    Dim rg As Range

    Dim strSheetName$

    '$字符串类型的缩写

    '完整写法为 dimstrSheetName as string

    Worksheets.Addafter:=Worksheets(Worksheets.Count)

    strSheetName = Worksheets(1).Name

    For Each rg In Range('a1:a10')

       rg.Hyperlinks.Add rg, '', ''' & strSheetName& ''!' & rg.Address(False, False)

        '为了避免工作表名中有特殊字符,前后用单引号包围。 '工作表名'!A1,链接类似。

    Next

    Range('a11:b20').Value ='hwc2ycy'

    MsgBox '测试单元格填充完成,确定后,开始清除单元格内的超链接'

    Range('a1').CurrentRegion.ClearHyperlinks

    MsgBox '超链接清除完成'


  ClearOutline 方法

  清除指定区域的分级显示。

  示例:

    Range('a1').CurrentRegion.ClearOutline

  有分组则清除分级,没有也不报错。

  这几个方法,在10的版本中,在 开始 选项卡中的 编辑 组内可找到对应的命令。
      


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多