excel vba如何查询某单元格所在行

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel vba如何查询某单元格所在行相关的知识,希望对你有一定的参考价值。

工作需要,先请教
1、如何查询包含某文本的单元格所在的行?
2、如何获取这一行第n列至第m列每个单元格的数据?

参考技术A 1、可以用InStr(查找的单元格或文本,查找的内容)这个来查找,用“.row”来获取行号
假设你要查找A列里包含“中国”内容的单元格可以这么写
For i = 1 To Cells(65536, 1).End(xlUp).Row '获取A列最后一个含有数值单元格的位置,并设定循环数
If InStr(Cells(i, 1), "中国") Then '如果单元格中含有“中国”则将行号显示到B列相应的单元格中
Cells(i, 2) = Cells(i, 1).row
End If
Next i

2、获取数据的话可以用“变量=cells(行号,列号)”来获取

不过我对VBA属于初学,肯定还有比我这个跟好的写法,所以写的有什么的不对的地方还请见谅^_^本回答被提问者和网友采纳
参考技术B 没分,不教,哈哈

EXCEL 某单元格不为空时,提取该单元格所在行所有数据到另一个工作表

如上图,第一个工作表里C列有的是空白,有的是记录了员工的出勤情况,现在想把C列所有不为空单元格的所在行全部自动汇总到另一个工作表内。实现下图

用什么公式可以这样自动实现筛选汇总?

用数组公式可实现
=INDEX(C:C,SMALL(IF($C$2:$C$200="",65536,ROW($C$2:$C$200)),ROW(A1)))&""
可以将这个公式,复制到第一个表格D1中先试试看
数组公式,要ctrl+shift+enter三键结束

将其中的单元格,改成你表里的单元格即可

这是提取C列的值,同理,B列、A列公式为
=INDEX(B:B,SMALL(IF($C$2:$C$200="",65536,ROW($C$2:$C$200)),ROW(A1)))&""
=INDEX(A:A,SMALL(IF($C$2:$C$200="",65536,ROW($C$2:$C$200)),ROW(A1)))&""追问

请问65536是什么意思啊

追答

65536是最大行,也就是当单元格时空值时,行数=65536,从而在用small排序时,排到最后面

参考技术A 要灵活点,这个用筛选,选择性粘贴比用公式方便。 参考技术B 直接用筛选功能就能实现,筛选所有非空白项目,然后复制到另外一个工作表 参考技术C 用高级筛选 参考技术D 全选把空的点掉就可以了追问

我知道可以用筛选,有没有什么公式能自动在另一个工作表里实现,谢谢啦

以上是关于excel vba如何查询某单元格所在行的主要内容,如果未能解决你的问题,请参考以下文章

在EXCEL中 如何用VBA查找某特定单元格并返回该单元格的行和列值?

delphi 更改stringgrid单元格所在行的字体颜色

EXCEL如何从单元格选中到它所在的整行

请教哈·····在excel中如何设置当选中某单元格时将该单元格所在的行和列高亮显示,不用编程能实现吗~?

vba如何读取excel中某单元格的行数或列数

EXCEL 某单元格不为空时,提取该单元格所在行所有数据到另一个工作表