今天我们聊聊单元格中的Clear家族,该家族成员极具破坏性。 在VBA中,有一点大家需要注意,当用代码操作对象后(典型的工作簿,工作表,单元格)没有撤消一说。 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 有分组则清除分级,没有也不报错。 |
|
来自: fzchenwl > 《excel精英培训》