当前位置: 首页 > news >正文

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

http://www.lryc.cn/news/45752.html

相关文章:

  • 【内网安全】横向移动域控提权NetLogonADCSPACKDC永恒之蓝
  • 将本地项目上传到远程仓库的步骤
  • selenium+opencv实现模拟登陆(滑块验证码)
  • 辽宁申请互联网医院牌照流程
  • java实现布隆过滤器
  • gitlab部署及整合Jenkins持续构建(三)nexus私服的安装及实战、linux安装mysql
  • 一、Java基础(2)
  • 软件设计师重要知识点——第一章——计算机组成与体系结构
  • 编程学习心得
  • web获取媒体流
  • 代码随想录算法训练营第四十二天 | 01背包问题,你该了解这些、01背包问题,你该了解这些 滚动数组、 416. 分割等和子集
  • 【Android】JNI静态与动态注册介绍
  • 【算法题解】22. 接雨水
  • 集合详解之(四)集合的遍历
  • 【I2C】通用驱动i2c-dev分析
  • 用GPT-4写代码不用翻墙了?Cursor告诉你:可以~~
  • 硬件语言Verilog HDL牛客刷题day03 时序逻辑部分
  • day31 ● 455.分发饼干 ● 376. 摆动序列 ● 53. 最大子序和
  • MobTech 秒验|本机号码一键登录会泄露隐私吗
  • 2023年供销合作社研究报告
  • 【ansible】实施任务控制
  • 49天精通Java,第11天,java接口和抽象类的异同,default关键字
  • JAVA练习99-逆波兰表达式求值
  • 恶意软件、恶意软件反杀技术以及反病毒技术的详细介绍
  • 【数据库运维】mysql备份恢复练习
  • 刷题30-对称的二叉树
  • 精选简历模板
  • 蓝桥杯嵌入式第十三届客观题解析
  • 【Redis】线程问题
  • 【算法题】2498. 青蛙过河 II