在Excel中,没有反向选择单元格的功能,有时需要这样的操作就很麻烦,罗兄借助VBA,插入一个新的工作表,再原使用区域(UsedRange)中设定公式,而在原选择单元格的区域中设定数值,然后再选择包含公式的区域,而获得反向选择的区域,用手工操作看起来很麻烦,而用VBA来完成速度还是非常快的,原代码如下:
Sub fanxiangs() '反向选择
If ActiveSheet.ProtectContents Then
MsgBox "工作表已保护,本程序拒绝执行!", 64, "提示 - http://www.excelba.com"
Exit Sub
ElseIf TypeName(Selection) <> "Range" Then
MsgBox "选择的对象不是单元格,本程序拒绝执行!", 64, "提示 - http://www.excelba.com"
Exit Sub
End If
Application.DisplayAlerts = False
Application.ScreenUpdating = False
Dim raddress As String, taddress As String
raddress = Selection.Address
taddress = ActiveSheet.UsedRange.Address
With Sheets.Add
.Range(taddress) = 0
.Range(raddress) = "=0"
raddress = .Range(taddress).SpecialCells(xlCellTypeConstants, 1).Address
.Delete
End With
ActiveSheet.Range(raddress).Select
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub