1 、选取
选取单元格只需要用.select即可,如Range("a1").select
另外还可以用selection表示已选取的单元格区域
2、 获取单元格内容
获取单元格内容直接用=Range("单元格地址"),就可以取得单元格的内容
如果要取得单元格的显示内容(有时设置了自定义格式,显示和实际的内容并不一定一样),可以用Range("单元格地址").Text来完成
如果把一个单元格区域的值交给一个变量,则该变量会自动成为VBA二维数组,如
arr=Range("a1:b10")
3、合并单元格
合并单元格只需要用Range("单元格地址").Merge 方式,就可以合并单元格了。如
Range("a1:b1").Merge 合并a1:b1区域
如果要解除合并,则可以用Range("a1:b1").UnMerge
4 单元格查找
单元格的查找,可以调用excel工作表函数如 application.match(),也可以用VBA 中的find方法进行查找
Find 方法
应用于 Range 对象的 Find 方法。
在区域中查找特定信息,并返回 Range 对象,该对象代表用于查找信息的第一个单元格。如果未发现匹配单元格,就返回 Nothing。本方法不影响选定区域或活动单元格。
有关在 Visual Basic 中使用 Find 工作表函数的详细信息,请参阅F1帮助中在 Visual Basic 中使用工作表函数。
expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SerchFormat)
expression 必需。该表达式返回一个 Range 对象。
What Variant 类型,必需。要搜索的数据。可为字符串或任意 Microsoft Excel 数据类型。
After Variant 类型,可选。表示搜索过程将从其之后开始进行的单元格。此单元格对应于从用户界面搜索时的活动单元格位置。值得注意的是,After 必须是区域中的单个单元格。请记住搜索是从该单元格之后 开始的;直到本方法绕回到指定的单元格时,才对其进行搜索。如果未指定本参数,搜索将从区域的左上角单元格之后开始。
LookIn Variant 类型,可选。信息类型。
LookAt Variant 类型,可选。可为以下 XlLookAt 常量之一:xlWhole 或 xlPart。
SearchOrder Variant 类型,可选。可为以下 XlSearchOrder 常量之一:xlByRows 或 xlByColumns。
SearchDirection XlSearchDirection 类型,可选。搜索的方向。
XlSearchDirection 可为以下 XlSearchDirection 常量之一。xlNext 默认值xlPrevious
MatchCase Variant 类型,可选。若为 True,则进行区分大小写的查找。默认值为 False。
MatchByte Variant 类型,可选。仅在选择或安装了双字节语言支持时使用。若为 True,则双字节字符仅匹配双字节字符。若为 False,则双字节字符可匹配其等价的单字节字符。
SearchFormat Variant 类型,可选。搜索的格式。
说明每次使用本方法后,参数 LookIn、LookAt、SearchOrder 和 MatchByte 的设置将保存。如果下次调用本方法时不指定这些参数的值,就使用保存的值。设置这些参数将更改“查找和替换”对话框中的设置,如果您忽略参数,更改“查找和替换”对话框中的设置将更改使用的保存值。若要避免这种问题的出现,每次使用该方法时请明确设置这些参数。
可以使用 FindNext和 FindPrevious方法重复搜索。
当搜索到指定的搜索区域的末尾时,本方法将绕回到区域的开始继续搜索。发生绕转后,若要停止搜索,请保存第一个找到的单元格地址,然后依据该保存地址测试每个后续查找到的单元格地址。
若要进行更为复杂的模式匹配查找,请用 For Each...Next 语句和 Like 运算符。例如,下列代码在单元格区域 A1:C5 中搜索字体名称以“Cour”开始的单元格。当 Microsoft Excel 找到匹配单元格以后,就将其字体改为“Times New Roman”。
For Each c In [A1:C5]
If c.Font.Name Like "Cour*" Then
c.Font.Name = "Times New Roman"
End If
Next
--------------------------------------------------------
下面是教学示例代码:
Sub Find1() '在某列查找
Dim k
k = Range("A:A").Find("A").Row
MsgBox k
End Sub
Sub Find11() '在多列查找
Dim k
k = Range("A:B").Find("BCD").Row
MsgBox k
End Sub
Sub Find2() '查找的起始位置
Dim k
k = Range("A:B").Find("A", AFTER:=Range("A5")).Row
MsgBox k
End Sub
Sub Find3() '在值中查找
Dim k
k = Range("B:B").Find("SE", LookIn:=xlValues).Row
MsgBox k
End Sub
Sub Find31() '在公式中查找
Dim k
k = Range("B:B").Find("C2", LookIn:=xlFormulas).Address
MsgBox k
End Sub
Sub Find32() '在备注中查找
Dim k
k = Range("B:C").Find("AB", LookIn:=xlComments).Address
MsgBox k
End Sub
Sub Find41() '按模糊查找
Dim k
k = Range("B:C").Find("A", LookIn:=xlValues, LOOKAT:=xlPart).Address
MsgBox k
End Sub
Sub Find42() '匹配查找
Dim k
k = Range("B:C").Find("A", LookIn:=xlValues, LOOKAT:=xlWhole).Address
MsgBox k
End Sub
Sub Find5() '按先行后列的方式查找
Dim k
k = Range("A:B").Find("AB", LookIn:=xlValues, LOOKAT:=xlWhole, SEARCHORDER:=xlByRows).Address
MsgBox k
End Sub
Sub Find51() '按先列后行的方式查找
Dim k
k = Range("A:B").Find("AB", LookIn:=xlValues, LOOKAT:=xlWhole, SEARCHORDER:=xlByColumns).Address
MsgBox k
End Sub
Sub Find6() '查找方向(从后向前)
Dim k
k = Range("A:A").Find("A", , xlValues, xlWhole, xlByColumns, xlPrevious).Address
MsgBox k
End Sub
Sub Find61() '查找方向(从前向后)
Dim k
k = Range("A:A").Find("A", , xlValues, xlWhole, xlByColumns, xlNext).Address
MsgBox k
End Sub
Sub Find7() '字母大小写
Dim k
k = Range("a:b").Find("a", , xlValues, xlWhole, xlByColumns, xlNext, False).Address
MsgBox k
End Sub
Sub f7() '查找不到的情况
Dim MRG As Range
Set MRG = Range("A:A").Find("D")
If MRG Is Nothing Then
MsgBox "查找不到字母D"
Else
MsgBox "查找成功,单元格地址为:" & MRG.Address
End If
End Sub
Sub f8() '二次查找
Dim MRG As Range
Set MRG = Range("A:A").Find("A")
Set mrg1 = Range("A:A").FindNext(MRG)
MsgBox mrg1.Address
End Sub
Sub F9() '区域查找
Dim MRG As Range, AAA As String
Set MRG = Range("A1:F16").Find("A")
AAA = MRG.Address
Do
Set MRG = Range("A1:F16").FindNext(MRG)
MsgBox MRG.Address
Loop Until MRG.Address = AAAEnd Sub
5、给单元格赋值
这个就比较简单了,直接用range("单元格")=值即可