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

步骤:
1)找到内容为Weight/Mt Contents的单元格(这个单元格在sheet中肯定是唯一的);
2)在该单元格所在行的下面插入一行;
3)从该单元格所在行一直到第一行全部删除。

代码解析:

RngFind过程使用Find方法在工作表Sheet1的A列中查找InputBox函数对话框中所输入的值,并查找该值所在的第一个单元格。

第6到第13行代码在工作表Sheet1的A列中查找InputBox函数对话框中所输入的值。应用于Range对象的Find方法在区域中查找特定信息,并返回Range对象,该对象代表用于查找信息的第一个单元格。如果未发现匹配单元格,就返回Nothing,语法如下:

expression.Find(What, After, LookIn, LookAt, SearchOrder, SearchDirection, MatchCase, MatchByte, SerchFormat)

参数expression是必需的,该表达式返回一个Range对象。

参数What是必需的,要搜索的数据,可为字符串或任意数据类型。

参数After是可选的,表示搜索过程将从其之后开始进行的单元格,必须是区域中的单个单元格。查找时是从该单元格之后开始的,直到本方法绕回到指定的单元格时,才对其进行搜索。如果未指定本参数,搜索将从区域的左上角单元格之后开始。

在本例中将After参数设置为A列的最后一个单元格,所以查找时从A1单元格开始搜索。

参数LookIn是可选的,信息类型。

参数LookAt是可选的,可为XlLookAt常量的xlWhole 或xlPart之一。

参数SearchOrder是可选的,可为XlSearchOrder常量的xlByRows或xlByColumns之一。

参数SearchDirection是可选的,搜索的方向,可为XlSearchDirection常量的xlNext或xlPrevious之一。

参数MatchCase是可选的,若为True,则进行区分大小写的查找。默认值为False。

参数MatchByte是可选的,仅在选择或安装了双字节语言支持时使用。若为True,则双字节字符仅匹配双字节字符。若为False,则双字节字符可匹配其等价的单字节字符。
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-02-21
dim flag as boolean
flag=false
for i=1 to usedrange.rows.count
for j=1 to usedrange.columns.count
if cells(i,j)="Weight/Mt Contents" then
Rows(i+1).Insert Shift:=xlDown
Rows("1:"& i).Delete Shift:=xlUp
flag=true
exit for
end if
next j
if flag then exit for
next i追问

运行不了,要求调试“For i = 1 To UsedRange.Rows.Count”。
谢谢。

追答

你把代码放到什么地方了,放到模块里了吗?
还是放到你的sheet里了
你要是放到模块里了这样改
Dim flag As Boolean
flag = False
Dim i As Integer
Dim j As Integer
For i = 1 To ActiveSheet.UsedRange.Rows.Count
For j = 1 To ActiveSheet.UsedRange.Columns.Count
If ActiveSheet.Cells(i, j) = "Weight/Mt Contents" Then
ActiveSheet.Rows(i + 1).Insert Shift:=xlDown
ActiveSheet.Rows("1:" & i).Delete Shift:=xlUp
flag = True
Exit For
End If
Next j
If flag Then Exit For
Next i

本回答被提问者采纳
第2个回答  2021-04-15
在工作表中我们经常使用查找功能,在一列中查找某个内容,查找下一个,那在VBA中我们该如何进行查找呢?
我们希望通过输入班级,点击筛选就能出来想要的内容,这里我忘了在筛选之前先做个清除,所以筛选二班记录时,三班的记录没有被清除掉。
我们要把某个班级的记录筛选出来,那么就希望首先在对应的列里找到某个班级所在的单元格,这里就用到了Find,找到后就把该行复制到对应位置,然后继续查找下一个。我们就可以使用VBA代码:
Sub 筛选()Dim rng1, rng2, rng3 As Range, addr$, adr$Set rng1 = Range("a:a").Find(Range("e6").Value)addr = rng1.AddressDo Set rng1 = Range("a:a").FindNext(rng1) adr = rng1.Address Set rng2 = Cells(Rows.Count, "e").End(xlUp)(2, 1) Set rng3 = rng1.EntireRow.Range("a1:c1") rng3.Copy rng2Loop Until addr = rng1.AddressEnd Sub
第3个回答  2021-04-15
如果是多个,并且不要提示,让它变成行数的变量
Microsoft Excel是微软公司的办公软件Microsoft office的组件之一,是由Microsoft为Windows和Apple Macintosh操作系统的电脑而编写和运行的一款试算表软件,最早版本是在1985年开发的。
Microsoft Excel可以进行各种数据的处理、统计分析和辅助决策操作等,具有打开或关闭表格标题行、计算列使用单个公式调整每一行、数据排序和筛选、自定义公式和文本输入等功能。目前,Microsoft Excel被广泛应用于管理、统计财经、金融等众多领域。

在工作表中我们经常使用查找功能,在一列中查找某个内容,查找下一个,那在VBA中我们该如何进行查找呢?
我们希望通过输入班级,点击筛选就能出来想要的内容,这里我忘了在筛选之前先做个清除,所以筛选二班记录时,三班的记录没有被清除掉。
我们要把某个班级的记录筛选出来,那么就希望首先在对应的列里找到某个班级所在的单元格,这里就用到了Find,找到后就把该行复制到对应位置,然后继续查找下一个。我们就可以使用VBA代码:
Sub 筛选()Dim rng1, rng2, rng3 As Range, addr$, adr$Set rng1 = Range("a:a").Find(Range("e6").Value)addr = rng1.AddressDo Set rng1 = Range("a:a").FindNext(rng1) adr = rng1.Address Set rng2 = Cells(Rows.Count, "e").End(xlUp)(2, 1) Set rng3 = rng1.EntireRow.Range("a1:c1") rng3.Copy rng2Loop Until addr = rng1.AddressEnd Sub

在EXCEL中 如何用VBA查找某特定单元格并返回该单元格的行和列值?
代码解析:RngFind过程使用Find方法在工作表Sheet1的A列中查找InputBox函数对话框中所输入的值,并查找该值所在的第一个单元格。第6到第13行代码在工作表Sheet1的A列中查找InputBox函数对话框中所输入的值。应用于Range对象的Find方法在区域中查找特定信息,并返回Range对象,该对象代表用于查找信息的第...

Excel,请问VBA如何实现查找单元格并获取该单元格的行数?
下一个单元格的行数 = Cells.FindNext("AB123").Row

如何通过vba获取当前单元格所在行和列
1、将单元格所选单元格的行号和列号,分别用VBA显示在下面的两个单元格中,2、按下Alt+F11,打开VBA编辑界面,选择当前工作表编写代码,3、下面代码是得到当前单元格的行号并放到当前单元格下一个单元格中:4、下面代码是得到当前单元格的列号并放到当前单元格下面第二个单元格中:5、代码编写完成,...

如何在Excel VBA 中的某一列查找某一单元格,并获得此单元格的行号?
给你个列子 在 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\\x0a...

excel VBA 如何取到有内容的最后一列和最后一行
另一种方法是,鼠标悬停在单元格的下边框上,当鼠标变成上下左右箭头时,双击操作。这将直接带你到最后一行。同样,如果你想回到首行,只需将鼠标移动到单元格的上边框上,重复这个双击动作。通过这些快捷键和鼠标操作,你能够快速且高效地在Excel的行和列之间切换,无论是查找、编辑还是整理数据,都能...

VBA Excel如何在工作表区域内查找某个值,发回这个值所在的行号...
Sub 查找()For Each rng In Range("a1:d3") If rng = 7 Then a = rng.Row b = rng.Column End IfNextMsgBox "行号为" & a & "-" & "列号为" & bEnd Sub

excel vba如何查询某单元格所在行
1、可以用InStr(查找的单元格或文本,查找的内容)这个来查找,用“.row”来获取行号 假设你要查找A列里包含“中国”内容的单元格可以这么写 For i = 1 To Cells(65536, 1).End(xlUp).Row '获取A列最后一个含有数值单元格的位置,并设定循环数 If InStr(Cells(i, 1), "中国") Then '如...

excel中如何通过VBA获取指定范围内鼠标所点击的单元格所在的行数?
在对应工作表中粘贴以下代码(不要新建模块!!!)Private Sub Worksheet_SelectionChange(ByVal Target As Range)If (Target.Column >= 2 Or Target.Column <= 8) And Target.Row = 1 Then '选定B1:H1时 Range("A1") = Target.Row 'A1显示选定的行数 Range("A2") = Target...

如何在Excel中设置VBA实现全工作簿搜索某字符单元格,并跳转到该字符所在...
首先必要的前提是:依据搜索要求编写对应的vba程序语言 在excel中找到“开发选项”插入编写好的vba程序 选定数据宏的“范围”即为需要搜索的工作簿 最后指定跳转的“目的地”即为呈现跳转分析数据的单元格

如何使用vba命令定位到最后一行有内容单元格的下一行。
1、首先打开需要编辑的Excel表格,鼠标右键单击工作表,选择打开“查看代码”。2、然后在弹出来的窗口中点击输入代码:Sub 选择单元格最下面第一个空值()Range("a" & Cells(Rows.Count, 1).End(xlUp).Row + 1).Select End Sub 3、然后或者输入代码:sub 选择单元格最后一行()Range("a" & ...

相似回答