如何在Excel VBA 中的某一列查找某一单元格,并获得此单元格的行号?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在Excel VBA 中的某一列查找某一单元格,并获得此单元格的行号?相关的知识,希望对你有一定的参考价值。
参考技术A 给你个列子 在 C列找 包含 “宁波” 的单元格 ,如果 是完全匹配 XLPART 改成XLWHOLE\\x0d\\x0aSub 查找()\\x0d\\x0aSet findcell = Columns("c").Find("宁波", LookAt:=xlPart)\\x0d\\x0aIf Not findcell Is Nothing Then\\x0d\\x0aMsgBox findcell.Row\\x0d\\x0aElse\\x0d\\x0aMsgBox "没找到符合条件的单元格"\\x0d\\x0aEnd If\\x0d\\x0aEnd SubVBA学习笔记之单元格
‘单元格对象在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 Sub Sub 实例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是相对引用,并且有一定顺序。
以上是关于如何在Excel VBA 中的某一列查找某一单元格,并获得此单元格的行号?的主要内容,如果未能解决你的问题,请参考以下文章
Excel用宏vb命令怎指定某一列锁定,其他单元格可编辑与合并?