深圳office培训 深圳excel培训
深圳excel培训 深圳office培训
咨询服务
深圳office培训
深圳office培训
office培训
excel培训
ppt培训
vba培训
access培训
word培训
visio培训
project培训
outlook培训
数据库培训
深圳access培训
深圳sql培训
深圳office培训
 

vba中有关单元格的操作


2021年11月1日 作者: 来源:

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("单元格")=值即可


阅读:4016 上一则:excel中的文本函数 下一则:excel疑难解答及应用设计

返回前页 返回顶部
温馨提示:本中心是深圳较为专业office培训机构、咨询及报名请先预约,电话:0755-82124110。
深圳地址:深圳红荔路四川大厦1109B-1110(3号龙岗线通新岭地铁站A出口10米)
热线:0755-82124110(福田、南山、宝安) 0755-22205758(罗湖、龙岗、龙华) 13510024571(东莞、惠州、珠海、广州)
北京地址:北京清华大学华业大厦三区三楼 版权所有:深圳万博计算机教育 粤ICP备11006947号-1
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训 欢迎咨询!
您好!请点击这里咨询万博教育
深圳万博吴老师
您好!请点击这里咨询万博教育
深圳万博史老师
 
深圳信息系统项目管理师培训
深圳信息系统项目管理师培训