今天我们聊聊单元格中的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的版本中,在 开始 选项卡中的 编辑 组内可找到对应的命令。
联系客服