本文于2023年10月24日首发于本人同名其他平台,更多文章案例请搜索关注!
内容提要
Range对象的用法
大家好,我是冷水泡茶,这两天在捣鼓【用印管理系统】,前面挖下的坑,得想办法给填上。虽然是根据【电子发票登记系统(Access版)】来修改的,有很多参考,不用从头做起,但是工作量还是不小的,复杂程度也不低。前一段时间做了一点,又搁置了,这两天再接着搞的时候,发现很多思路、逻辑都有点模糊了。所以啊,不管做什么事,最好能一气呵成、一鼓作气,最起码别间隔太长时间,否则就要浪费更多的时间。本来以为很快就能做好,但还有一些功能没有完成,还得等两天。扯远了。
前面我们讲过WorkBook对象【WorkBook对象】、【Worksheet对象】,今天我们一起来了解一下Range对象。
一、什么是Range对象?
Range,区域的意思,代表了一个单元格或一组单元格的范围。
二、常用的属性、方法
1、定义一个Range对象。
Dim rng As Range
2、引用Range对象 ,假设我们定义了一个工作表对象ws。
Set rng = ws.Range("A1:B2")Set rng = ws.Range("C1")Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(3, 3)).Set rng = ws.UsedRangeSet rng = ws.Range("A1").CurrentRegion
3、批注:
Set rng = ws.Range("C1")If Not rng.Comment Is Nothing Then rng.Comment.DeleteElse rng.AddComment CStr(Now)End If
添加批注只能针对一个单元格,如果rng有多个单元格,则需要使用其Cells属性来设置。可以通过循环来批量设置,也可以指定具体的单元格来设置。
Dim cell As RangeFor Each cell In rng.Cells If Not cell.Comment Is Nothing Then cell.Comment.Delete End If cell.AddComment CStr(Now)Next
4、Address:Range对象的单元格区域地址。
Set rng = ws.Range(ws.Cells(1, 1), ws.Cells(3, 3))Debug.Print rng.Address'运行结果是:$A$1:$C$3
5、AutoFit:自动最合适行高、列宽
rng.Columns.AutoFitrng.Rows.AutoFit
6、Borders:边框
rng.Borders.LineStyle = xlContinuous
7、Cells:单元格,工作表也有Cells属性,可不可以这么理解,一个工作表就是一个大Range?
rng.Cells.Clear '清除内容和格式,在向Range写入新数据之前,'我们要清除数据,防止不能完全覆盖。
Cells有很多属性与方法跟Range是类似的。
8、Clear:清除数据
rng.Clear '清除所有rng.ClearComments '清除批注rng.ClearContents '清除内容rng.ClearFormats '清除格式
9、Copy:复制
rng.Copy Destination:=ws.Range("F1")
10、Delete:删除。
rng.Delete shift:=xlUp
11、EntireColumn,整列;EntireRow,整行。
rng.EntireColumn.Deleterng.EntireRow.Delete
12、Find:查找包含指定值的单元格:
Set cell = rng.Find(What:=5, LookIn:=xlValues, LookAt:=xlWhole)
13、Font:设置字体
With rng.Font .Name = "黑体" .Bold = True .Color = vbRed .Size = 16 .Underline = xlUnderlineStyleSingleEnd With
14、Formula:设置单元格公式。
rng.Formula = "=rand()"
15、HorizontalAlignment:设置水平对齐方式。
rng.HorizontalAlignment = xlLeftrng.HorizontalAlignment = xlCenterrng.HorizontalAlignment = xlRight
16、Insert:插入单元格
rng.Insert shift:=xlDown, copyorigin:=True
17、Interior.Color:设置背景色
rng.Interior.Color = vbBlue
18、Merge:合并单元格
rng.Merge
19、NumberFormat/NumberFormatLocal:设置数字格式
rng.NumberFormat = "@"rng.NumberFormatLocal = "#,##0.00_ ;[红色]-#,##0.00 "
20、OffSet:偏移,返回一个Range,跟工作表函数OffSet有很大区别。
Debug.Print rng.Offset(1, 1).Address
21、Resize:扩展区域
Set rng = ws.Range("A1")Set rng = rng.Resize(10, 15)Debug.Print rng.Address
22、行高与列宽
rng.RowHeight = 20rng.ColumnWidth = 10
行高的单位是“点”(Point),1点=1/72英寸。
列宽的单位是“字符宽度”,默认情况下,一个字符的宽度被定义为8.43个点。
23、Select:选中
rng.Select
24、Value:值,默认属性,可以省略。
rng.Value = 6
25、VerticalAlignment:单元格垂直对齐方式。
rng.VerticalAlignment = xlToprng.VerticalAlignment = xlCenterrng.VerticalAlignment = xlBottom
26、WrapText:自动换行
rng.WrapText = True
四、总结
Range的属性与方法非常多,这里仅列出了一些我觉得比较常用的,或者说是我用过的。感兴趣的朋友可以自己慢慢去测试。
好,今天就到这吧。
~~~~~~End~~~~~~
喜欢就点个赞、点在看、留言评论、分享一下呗!感谢支持!