一、单元格的常用属性
Sub x1()
Range("b10") = Range("c2").Value '返回实际的值
Range("b11") = Range("c2").Text '返回相示的值
Range("b12") = "" & Range("c2").Formula '返回一个C2的文本公式
End Sub
Sub x2() '单元格的地址
With Range("b2").CurrentRegion
[b12] = .Address '默认等对绝对引用地址
[b13] = .Address(0, 0)
[b14] = .Address(1, 0)
[b15] = .Address(0, 1)
[b16] = .Address(1, 1)
End With
End Sub
Sub x3() '偏移,扩展
Range("C5").Offset(1, 1) = "偏移1列1行" 'offset属性:正数偏移行,列,负数反方向
Range("C5").Resize(3, 3) = "扩展行列" '调整指定区域
End Sub
Sub x4() 'Areas属性返回选中单元格的集合
Dim rng As Range
Dim i As Integer
Set rng = Range("A1:B2,C3:D4, E5:G7")
For i = 1 To rng.Areas.Count
MsgBox "第" & i & "个区域" & rng.Areas(i).Address
Next
Set rng = Nothing
End Sub
Sub x5()
With Range("b2")
[d12] = .Font.Size '字体大小
[d13] = .Font.ColorIndex '字体颜色
[d14] = .Interior.ColorIndex '背景颜色
[d15] = .Borders.LineStyle '有没有边框
End With
End Sub
Sub x6()
[b24] = Range("i2").Comment.Text '等于I2的批注文本,i2如没批注会报错
End Sub
Sub x7()
With Range("b3")
[b34] = .Top '与顶部位置差距
[b35] = .Left '左边距
[b36] = .Height '高度
[b37] = .Width '宽度
End With
End Sub
Sub x8() '单元格的上级信息
With Range("a1")
[b31] = .Parent.Name '返回上级信息sheets.name
[b32] = .Parent.Parent.Name '返回两上级信息:单元格-工作表名-工作薄名
End With
End Sub
Sub x9()
With Range("i3")
[b34] = .HasFormula '是否是公式。返回逻辑值true或false
[b35] = .Hyperlinks.Count '是否是超链接,超链接个数,0=没有
End With
End Sub
二、单元格的行与列属性附处理例子
Sub x10()
With Range("b2").CurrentRegion
[c12] = .Row '首行的行数
[c13] = .Rows.Count '总行数
[c14] = .Column '首列
[c15] = .Columns.Count '总列数
[c16] = .Range("a1").Address '所在表第一个单元格地址
End With
End Sub
Sub x61() '添加行
Dim a As Integer
For a = 1 To 3
Sheet1.Rows(3).Insert '第三行处开始添加
Next
End Sub
Sub x62()
Sheet1.Range("A3").EntireRow.Resize(3).Insert 'Entirerow返回整行
End Sub
Sub x63()
Sheet1.Rows(3).Resize(3).Insert '第三行扩展3,也就是选中三行插入行
End Sub
Sub x64() '删除已使用单元格内的空行
Dim rRow As Long
Dim cRow As Long
Dim i As Long
rRow = Sheet1.UsedRange.Row '开始行
cRow = rRow + Sheet1.UsedRange.Rows.Count - 1 '开始行 + 已使用单元格的最大行 - 1
For i = cRow To rRow Step -1
If Application.WorksheetFunction.CountA(Rows(i)) = 0 Then '调用工作表函数统计非空
Rows(i).Delete '空的行删除
End If
Next
End Sub
Sub x65() '删除A行内重复单元格的行
Dim r As Integer
Dim s As Integer
With Sheet1
r = .[A65530].End(xlUp).Row
For s = r To 1 Step -1
If WorksheetFunction.CountIf(.Columns(1), .Cells(s, 1)) > 1 Then
.Rows(s).Delete
End If
Next
End With
End Sub
三、单元格的颜色
Sub x12() 'RGB颜色输入方式
Dim 红#, 蓝#, 绿#
红 = 255
蓝 = 123
绿 = 100
Range("g1").Interior.Color = RGB(红, 蓝, 绿)
End Sub
RGB颜色图在 VBA(3)单元格格式附图
Sub x13() 'excel里自带颜色
Dim x As Integer
Range("a1:b60").Clear
For x = 1 To 56
Range("a" & x) = x
Range("b" & x).Interior.ColorIndex = x
Next
End Sub
'附图
四、单元格查找函数
Sub x14() '用工作表函数查找
Dim hao As Integer
Dim icount As Integer
icount = Application.WorksheetFunction.CountIf(Sheets("sheet1").[b:b], [c3])
If icount > 0 Then
MsgBox "存在"
Else
MsgBox "不在"
End If
End Sub
用FIND查找函数找查
语法说明:
表达式
.Find (What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SearchFormat)
expression 一个表示 Range 对象的变量。
参数
名称 |
必需/可选 |
数据类型 |
说明 |
What |
必需 |
Variant |
要搜索的数据。 可为字符串或任意 Microsoft Excel 数据类型。 |
After |
可选 |
Variant |
要在其后开始搜索的单元格。 从用户界面搜索时,这对应于活动单元格的位置。 请注意,After 必须是区域内的单个单元格。 请注意,搜索在此单元格之后开始;在方法回绕到此单元格之前,不会搜索指定的单元格。 如果未指定此参数,搜索将在区域左上角的单元格后面开始。 |
LookIn |
可选 |
Variant |
可以是下列 XlFindLookIn 常量之一:xlFormulas、xlValues、xlComments 或 xlCommentsThreaded。 |
LookAt |
可选 |
Variant |
可以是下列 XlLookAt 常量之一:xlWhole 或 xlPart。 |
SearchOrder |
可选 |
Variant |
可以是以下 XlSearchOrder 常量之一:xlByRows 或 xlByColumns。 |
SearchDirection |
可选 |
Variant |
可以是以下 XlSearchDirection 常量之一: xlNext 或 xlPrevious。 |
MatchCase |
可选 |
Variant |
如果为 True,则搜索区分大小写。 默认值为 False。 |
MatchByte |
可选 |
Variant |
仅在选择或安装了双字节语言支持时使用。 如果为 True,则双字节字符仅匹配双字节字符。 如果为 False,则双字节字符匹配其单字节等效字符。 |
SearchFormat |
可选 |
Variant |
搜索格式。 |
返回值
一个 Range 对象,它代表在其中找到该信息的第一个单元格。
来自
例子:
Sub x15() '.FIND函数查找
Dim r As Integer, r1 As Integer
Dim icount As Integer
icount = Application.WorksheetFunction.CountIf(Sheets("sheet1").[b:b], [c3]) '调工作表函数统计个数
If icount > 0 Then '如果存在则查找
r = Sheets("sheet1").[b:b].Find(Range("G3"), LookAt:=xlWhole).Row '找查第一次出现的行
r1 = Sheets("sheet1").[b:b].Find([g3], , , , , xlPrevious).Row '从下住上查找。也就是最后一个
MsgBox r & ";" & r1 '显示第一个出现&最后一个
End If
End Sub
单元格的复习篇章到此到一段落;
谢谢观看。