vba:单元格的选择,查找,合并,批注,SpecialCells,图形插入
一:
'活动单元格:activecell,工作表中活动单元格只有一个
Sub activecells()
a = activecell.Address '取得活动单元格地址
Cells(2, 3).Activate '激活指定单元格
End Sub
'selection光标所选区域
Sub 光标所选区域()
Selection = 1
End Sub
Sub 在selection中的改变活单元格()
For i = 1 To Selection.Count
Selection(i).Activate
Next
End Sub
Sub 运用()
Dim i As Range
For Each i In Selection
If i = "" Or i = "缺勤" Then
i = "×"
End If
Next i
End Sub
'小结:selection的好处在于,可以很自由灵活选择你想要处理的单元格区域
'Range.Offset 属性
'返回 Range 对象,它代表位于指定单元格区域的一定的偏移量位置上的区域。
'表达式.Offset(偏移行, 偏移列)
'表达式 一个代表 Range 对象的变量。
'偏移行列的数字可以是:正数,负数,零值
Sub test()
[a1].Offset(1, 2).Select '行列都偏移
[a1].Offset(2).Select '只偏移行
[a1].Offset(, 2).Select '只偏移列
'如果offset前面的range对象是一个区域,则偏移后也结果尺寸不变
[a1:d1].Offset(1, 2).Select
[a1:d1].Offset(2).Select
[a1:d1].Offset(, 2).Select
End Sub
Sub offset应用1()
Dim i%
For i = 2 To 8 Step 2
[a1:e1].Copy [a1:e1].Offset(i)
Next i
End Sub
Sub offset应用2()
Dim i%
For i = 2 To 8 Step 2
[a1:e1].Offset(i) = ""
Next i
End Sub
'Range.Resize 属性
'调整指定区域的大小。返回 Range 对象,该对象代表调整后的区域。
'语法
'表达式.Resize(行数, 列数)
'表达式 一个返回 Range 对象的表达式。
Sub test()
[a1].Resize(2, 3).Select
[a1].Resize(2).Select
[a1].Resize(, 3).Select
End Sub
案例
Sub 保存()
Dim i%, j%, k%
i = [a1].CurrentRegion.Rows.Count - 1
j = [a1].CurrentRegion.Columns.Count
k = Application.CountA(Sheet2.Columns(1))
[a2].Resize(i, j).Copy Sheet2.[a1].Offset(k)
End Sub
'usedrange与currentregion
'如果表中只有一个区域,两者最后的结果是一样的
'只是表达方式不一样
Sub u与c()
Sheet3.UsedRange.Select
[a1].CurrentRegion.Select
End Sub
'Range.EntireRow 属性
'返回一个 Range 对象,该对象表示包含指定区域的整行(或多行)。
'语法
'表达式.EntireRow
'表达式 一个代表 Range 对象的变量。
'Range.EntireColumn 属性
'返回一个 Range 对象,该对象表示包含指定区域的整列(或多列)
'语法
'表达式.EntireColumn
'表达式 一个代表 Range 对象的变量。
Sub test()
[a1].EntireRow.Select
[a1].EntireColumn.Select
[a1:a4].EntireRow.Select
[a1:d1].EntireColumn.Select
End Sub
案例
Sub test1() '删除空行
Dim rng As Range, ads As String
For Each rng In [a1:a10]
If rng = "" Then ad = ad & rng.Address & ","
Next
ads = Left(ad, Len(ad) - 1)
Range(ads).EntireRow.Delete
End Sub
'Range.SpecialCells 方法
'返回一个 Range 对象,该对象代表与指定类型和值匹配的所有单元格。
'语法
'表达式.SpecialCells(Type, Value)
'表达式 一个代表 Range 对象的变量。
Sub 批注汇总()
MsgBox Application.Sum(Selection.SpecialCells(-4144))
End Sub
Sub 删除空行()
On Error GoTo 100
Selection.SpecialCells(xlCellTypeBlanks).Select
Selection.EntireRow.Delete
Exit Sub
100:
MsgBox "没有空行"
End Sub
XlCellType 常量 | 注释 | 值 |
xlCellTypeAllFormatConditions | 任意格式单元格 | -4172 |
xlCellTypeAllValidation | 含有验证条件的单元格 | -4174 |
xlCellTypeBlanks | 空单元格 | 4 |
xlCellTypeComments | 含有注释的单元格 | -4144 |
xlCellTypeConstants | 含有常量的单元格 | 2 |
xlCellTypeFormulas | 含有公式的单元格 | -4123 |
xlCellTypeLastCell | 已用区域中的最后一个单元格 | 11 |
xlCellTypeSameFormatConditions | 含有相同格式的单元格 | -4173 |
xlCellTypeSameValidation | 含有相同验证条件的单元格 | -4175 |
xlCellTypeVisible | 所有可见单元格 | 12 |
XlSpecialCellsValue 常量 | 注释 | 值 |
xlNumbers | 数字 | 1 |
xlTextValues | 文本 | 2 |
xlLogical | 逻辑值 | 4 |
xlErrors | 错误 | 16 |