、'单元格对象在VBA中一个非常基础,同时也很重要的。
'它的表达方式也是非常的多样化。
'----------------------------------------------------
'Range 对象
'代表某一单元格、某一行、某一列、某一选定区域(该区域可包含一个或若干连续单元格区域),或者某一三维区域。'Range ("文本型装单元格地址")'range的常见写法
Sub rng()
Range("a1").Select         '单元格
Range("a:a").Select        '列
Range("1:3").Select       '行
Range("a1:b10").Select     '相邻区域
Range("a1:d7 c4:e8").Select  '不相个邻区域(同时选择多个不同区域按住CTRL选择)
End Sub

  Range("a1:d7 c4:e8").Select 注意这里d7后面是空格表示取二者区域的交集若为逗号,则是取二者区域的并集

'写法:Range ("文本型装单元格地址1","文本型装单元格地址2")
'range的变化写法
Sub rng变化()
Range("a1:b10").Select '一般写法
Range("a1", "b10").Select '变化写法1
Range(Range("a1"), Range("b10")).Select '变化写法2
Range("a1") = 123
End Sub'注意:
'1.如果在range前没有指定工作表,则默认为活动工作表
'2.如果对象不是活动工作表(如活动图表),则上面的代码也会出现错误Sub 单元格对象例子()
Debug.Print Range("a:a").Count '计数工作表最大的行数
Debug.Print Range("1:1").Count '计算工作表最大的列数
Debug.Print Application.CountA(Range("a:a")) '计算工作表已使用的行数  ‘CountA计算有多少个非空单元格’
Debug.Print Application.CountA(Range("1:1")) '计算工作表已使用的列数
End Sub

动态单元格的引用(事先不清楚要引用的单元格)(用变量代替)

'1.range("地址区域").range("地址区域")
Sub 序号表示法()
Range("b2:d4").Range("b2").Select '相对引用的写法'
'参照前一个range的左上单元格
End Sub'2.range地址区域中支持变量
Sub range的变量支持()
Dim a%
a = 3
Range("a" & a).Select
Range("c3:e5")(2).Select
End SubSub 实例1动态选单元格或区域()
Dim i%
i = Application.CountA(Range("c:c")) '找到c列中已使用的最后一个单元格位置
Range("c" & i).Select '选择C列最后一格
Range("a1", "c" & i).Select '选择A1到C列的最后一格(方法一)
Range("a1:c" & i).Select '选择A1到C列的最后一格(方法二)
'小结:动态单元格区域的定位,可以应用到单据的保存等实际工作中
End Sub


Range的引用:

Sub test()
Range("a1:c3")(3).Select
Range("a1:c3")(4).Select
End Sub

  结果第一次选择的是C1,第二次选择的是A2

总结:range(......)(number)引用的顺序是从左往右,然后从上往下,并且number是对前面区域的相对位置的引用,当然number可以为(2,3)这样的坐标

即:number是相对引用,并且有一定顺序

Range引用与索引值应用(有条件的平均工资):

'小结:
'1.这个索引值是参照前一个单元格区域左上单元格进行定位引用的
'2.索引值可以是正数,负数,零值,小数
Sub 大于等于2500的平增工资()
Dim rs%, rng%, lj&, k%
For rs = 1 To 60Range("b2:c20")(rs).Select'这句可以不用rng = Range("b2:c20")(rs)If rng >= 2500 Then lj = lj + rng: k = k + 1
Next rsMsgBox "大于等于2500的平均分为:" & Int(lj / k)
End Sub


  

'cells单元格引用法
'写法:cells(行号,列号)
Sub cells基本写法()
Cells(3, 4).Select '行列号均为数字
Cells(2, "c").Select '行为数字,列为列标字母
Cells.Select '全选
End Sub'cells可以像range一样可以参照前面的单元格位置
Sub 参照写法()
Range("b3:f11").Cells(2, 2).Select
Range("b3:f11").Cells(6).Select '从左到右,从上到下
Range("b3:f11")(6).Select '与上一句相等
End Sub
'注意:
'1.cells中的数字一样支持正数,负数,0值,小数(四舍六入五单双)
'2.cells不能像range一样可以引用一个区域,只能引用一个单元格'cells还可以嵌套在range中
Sub 嵌套()
Range(Range("b1"), Range("f11")).Select '这种嵌套方法写变量比较麻烦,代入变量比较麻烦
Range(Cells(3, 2), Cells(11, 6)).Select '这种嵌套方法写变量比较方便,可以代入四个变量
End SubSub 动态引用行列区域()
Dim a%, b%
a = Application.CountA(Range("a:a"))
b = Application.CountA(Range("1:1"))
Range(Cells(1, 1), Cells(a, b)).Select
End Sub

  


三种单元格引用小结

Sub range引用区域且有变量()
Dim i
i = 1
Range("a1:c" & i).Select '引用单元格是区域且有变量,就用Range
Cells(i, "c").Select '引用的是单个单元格且有变量,就用Cells
[a1:19].Select '引用的是区域或单元格且无变量,就用简化的形式
End Sub

Range.CurrentRegion属性

1 'Range.CurrentRegion 属性
2 '返回一个 Range 对象,该对象表示当前区域。
3 Sub 当前区域()
4     [a1].CurrentRegion.Select
5     [f8].CurrentRegion.Select
6 End Sub

效果图:&

1 Sub currentregion应用()
2     Rows(8).Clear
3     a = [b2].CurrentRegion.Address
4     b = [b5].CurrentRegion.Address
5     c = [b2].CurrentRegion.Count + 1
6     Set c = Range("b8", Cells(8, c))
7     c.FormulaArray = "=" & a & "+" & b '这个实际上是用工作表的公式"=a+b"
8 End Sub

效果图:

  

转载于:https://www.cnblogs.com/gilgamesh-hjb/p/7299310.html

VBA学习笔记之单元格相关推荐

  1. vba excel学习笔记-从单元格获取数据,修改数据

    从单元格获取数据 获取sheet名字为 "sheetname"的表格中的第一行第五列的值 赋值给变量a a = Sheets("sheetname").Cell ...

  2. PHPSpreadsheet学习笔记——访问单元格

    文章目录 一.实例化对象 二.访问单元格 2.1获取单元格 2.2单元格赋值 2.3excel数据类型 2.3.1在单元格设置公式 2.3.2在单元格设置日期和时间值 2.3.3 设置带前导零的数字 ...

  3. VBA学习笔记8:单元格的合并与拆分

    VBA学习笔记8:单元格的合并与拆分 如下图,需要实现1图到2图(单元格合并),或2图到1图(单元格拆分). 1图: 2图: 合并单元格代码如下: Sub 合并单元格()Dim k%, rng As ...

  4. Excel VBA 学习笔记13:单元格的格式

    Excel VBA 学习笔记13:单元格的格式 NumberFormat 属性 (Excel) vba excel 单元格格式设置 Excel VBA 单元格格式 python解决SNIMissing ...

  5. 陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮

    陈表达VBA学习笔记-新建工作表鼠标右键菜单按钮:新建一个我的菜单按钮 设置对应的宏过程名称为 [我的菜单宏] 点击按钮弹窗信息,信息可自定义设置 详细代码如下: Sub 新建右键菜单()Dim 菜单 ...

  6. VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接

    VBA学习笔记1:将同个文件夹中的工作簿汇总为一个工作簿,并建立目录超链接 1.将文件夹中的xlsx文件名复制到新工作簿: 2.将文件夹中的xlsx数据簿中的sheet复制到新表并重命名: 3.插入超 ...

  7. VBA学习笔记(9)--生成点拨(1)

    VBA学习笔记(9)--生成点拨(1) 说明(2017.3.26): 1. 还没写完,写到新建文件夹了,下一步新建word,重命名,查找点拨,把点拨复制进去,因为要给点拨编号,应该会很麻烦 1 Pub ...

  8. VBA中获取合并单元格的真实地址

    2019独角兽企业重金招聘Python工程师标准>>> 二少工作需要在VBA中获取合并单元格的地址范围, 于是有了此方法,作此记录 Private Sub Worksheet_Bef ...

  9. VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿

    VBA学习笔记5:将同一工作簿的数据按照类别拆分为多个工作簿 1.对每行数据按照类别所在列进行循环,判断某类别的工作簿是否存在: 2.如果不存在,则新建工作簿并将该行数据复制粘贴: 3.如果存在则打开 ...

  10. CGAL笔记之单元格复合体和多面体篇—曲面网格

    CGAL笔记之单元格复合体和多面体篇-曲面网格 0.前言 1.用法 1.示例 2.连通性 3.范围和迭代器 3.1 示例 4.循环器 1.示例 5.属性 1.示例 6.边界 7.Surface Mes ...

最新文章

  1. python 语言教程(2)基础语法
  2. Tensorflow:interactivesession和session的区别。
  3. 设备文件BSP及嵌入式驱动开发笔记
  4. FishC笔记—18 讲 函数:灵活即强大
  5. flash做动画教程(基础篇)
  6. ios备忘录下载安卓版_iOS8备忘录
  7. c语言 步进电机 程序,两相5、6线步进电机C语言程序
  8. 广义线性模型python
  9. windows PE结构解析
  10. php 进程通信系列 (三)信号量
  11. 【云原生|实践指北】5:真实业务场景下云原生项目落地实践学习
  12. 如何使用智能手机或Smartwatch重新配置睡眠周期
  13. Spring基础学习
  14. 创意编程——随机(扩散限制聚集DLA)
  15. VS2008,C++,镜子反射 光线反射游戏
  16. Docker网络、端口映射详解篇(三)
  17. PCB Polar SI9000阻抗模型图片文字识别方法
  18. git clone 太慢咋搞?两行命令解决(需要纸飞机)
  19. 工作中的项目怎么理解
  20. 早上睡醒后,程序员如何快速清醒头脑?

热门文章

  1. PHP开发API签名验证
  2. App Store Connect 等待协议
  3. matlab正弦函数傅里叶变换,正弦函数及其傅里叶变换(一)
  4. 计算机网络之域名系统DNS
  5. C# 驱动级模拟键盘输入
  6. php 抽奖系统源码下载,魔众砸金蛋抽奖系统PHP源码 v2.0.0
  7. 4G模块的GPS定位差距过大
  8. bjui ajax.js,B-JUI 前端管理框架
  9. 寻找丢失的iexplore进程
  10. 如何向PD充电器取电9V12V15V20V给电池或者智能家居供电快充?