vba:单元格的选择,查找,合并,批注,SpecialCells,图形插入

您所在的位置:网站首页 vba中排序 vba:单元格的选择,查找,合并,批注,SpecialCells,图形插入

vba:单元格的选择,查找,合并,批注,SpecialCells,图形插入

#vba:单元格的选择,查找,合并,批注,SpecialCells,图形插入| 来源: 网络整理| 查看: 265

一: 

'活动单元格: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任意格式单元格-4172xlCellTypeAllValidation含有验证条件的单元格-4174xlCellTypeBlanks空单元格4xlCellTypeComments含有注释的单元格-4144xlCellTypeConstants含有常量的单元格2xlCellTypeFormulas含有公式的单元格-4123xlCellTypeLastCell已用区域中的最后一个单元格11xlCellTypeSameFormatConditions含有相同格式的单元格-4173xlCellTypeSameValidation含有相同验证条件的单元格-4175xlCellTypeVisible所有可见单元格12XlSpecialCellsValue 常量注释值xlNumbers数字1xlTextValues文本2xlLogical逻辑值4xlErrors错误16



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3