excel宏命令 如何查找并定位相应单元格

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了excel宏命令 如何查找并定位相应单元格相关的知识,希望对你有一定的参考价值。

比如说H列的H1是姓名 王强
A100是当前日期 2010.1.28
可否我在对话框中输入 王强 后直接定位到H100这个单元格
因为表格太大,而且经常要操作,麻烦各位高手给个解决办法,小弟在这里先行谢过了
A B C D E F G H
1 王旭 王艳 王明 王浩 王涛 王博 王强
2 210.1.20
3 210.1.21
4 210.1.22
5 210.1.23
6 210.1.24
7 210.1.25
8 210.1.26
9 210.1.27
10 210.1.28
11 210.1.29

比如说这么一个表格,我想输入人名的时候可以快速定位到当前日期对应的那行,在这里就是我输入王强,那么可以直接定位到H10这个单元格

单元格/单元格区域

shaps(n).topleftcell 判断图片是否在指定单元格上

(32) ActiveCell.CurrentRegion.Select

或Range(ActiveCell.End(xlUp),ActiveCell.End(xlDown)).Select

'选择当前活动单元格所包含的范围,上下左右无空行

(33) Cells.Select '选定当前工作表的所有单元格

(34) Range("A1").ClearContents
'清除活动工作表上单元格A1中的内容

Selection.ClearContents '清除选定区域内容

Range("A1:D4").Clear
'彻底清除A1至D4单元格区域的内容,包括格式

(35) Cells.Clear '清除工作表中所有单元格的内容

(36) ActiveCell.Offset(1,0).Select
'活动单元格下移一行,同理,可下移一列

(37)
Range("A1").Offset(ColumnOffset:=1)或Range("A1").Offset(,1)
'偏移一列

Range("A1").Offset(Rowoffset:=-1)或Range("A1").Offset(-1)
'向上偏移一行

(38) Range("A1").Copy
Range("B1") '复制单元格A1,粘贴到单元格B1中

Range("A1:D8").Copy
Range("F1") '将单元格区域复制到单元格F1开始的区域中

Range("A1:D8").Cut
Range("F1") '剪切单元格区域A1至D8,复制到单元格F1开始的区域中

Range("A1").CurrentRegion.Copy
Sheets("Sheet2").Range("A1")
'复制包含A1的单元格区域到工作表2中以A1起始的单元格区域中

注:CurrentRegion属性等价于定位命令,由一个矩形单元格块组成,周围是一个或多个空行或列

(39) ActiveWindow.RangeSelection.Value=XX
'将值XX输入到所选单元格区域中

(40) ActiveWindow.RangeSelection.Count
'活动窗口中选择的单元格数

(41) Selection.Count '当前选中区域的单元格数

(42)
GetAddress=Replace(Hyperlinkcell.Hyperlinks(1).Address,mailto:,"")
'返回单元格中超级链接的地址并赋值

(43)
TextColor=Range("A1").Font.ColorIndex '检查单元格A1的文本颜色并返回颜色索引

Range("A1").Interior.ColorIndex
'获取单元格A1背景色

(44) cells.count '返回当前工作表的单元格数

(45)
Selection.Range("E4").Select '激活当前活动单元格下方3行,向右4列的单元格

(46) Cells.Item(5,"C") '引单元格C5

Cells.Item(5,3) '引单元格C5

(47)
Range("A1").Offset(RowOffset:=4,ColumnOffset:=5)

或 Range("A1").Offset(4,5)
'指定单元格F5

(48)
Range("B3").Resize(RowSize:=11,ColumnSize:=3)

Rnage("B3").Resize(11,3)
'创建B3:D13区域

(49) Range("Data").Resize(,2)
'将Data区域扩充2列

(50)
Union(Range("Data1"),Range("Data2")) '将Data1和Data2区域连接

(51)
Intersect(Range("Data1"),Range("Data2"))
'返回Data1和Data2区域的交叉区域

(52) Range("Data").Count
'单元格区域Data中的单元格数

Range("Data"). Columns.Count
'单元格区域Data中的列数

Range("Data"). Rows.Count
'单元格区域Data中的行数

(53) Selection.Columns.Count
'当前选中的单元格区域中的列数

Selection.Rows.Count '当前选中的单元格区域中的行数

(54) Selection.Areas.Count
'选中的单元格区域所包含的区域数

(55) ActiveSheet.UsedRange.Row
'获取单元格区域中使用的第一行的行号

(56) Rng.Column '获取单元格区域Rng左上角单元格所在列编号

(57)
ActiveSheet.Cells.SpecialCells(xlCellTypeAllFormatConditions)
'在活动工作表中返回所有符合条件格式设置的区域

(58) Range("A1").AutoFilter
Field:=3,VisibleDropDown:=False '关闭由于执行自动筛选命令产生的第3个字段的下拉列表
参考技术A 占个位置先,宏稍后贴上 ^-^
----------------------------------
代码如下(要求第一行为姓名,第一列为日期),直接执行即可(经常用的话,可以设置一个快捷方式,或者放一个图标在工具栏或菜单条中):

Sub 人员日期定位宏()
Dim FindName As String, toDay As Date, x As Integer, y As Integer
Dim oldcell As Range
Set oldcell = ActiveCell
FindName = ActiveCell.Value
toDay = Date

FindName = InputBox("请输入你要查询的人员姓名:", "人员&日期定位宏", FindName)
If FindName = "" Then Exit Sub

Rows("1:1").Select
On Error GoTo notFindName:
Selection.Find(What:=FindName, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, MatchByte:=False, SearchFormat:=False).Activate
'LookAt:=xlWhole 表示单元格匹配,LookAt:=xlPart 表示部分匹配
x = ActiveCell.Column()

Columns("A:A").Select
On Error GoTo notFindDate:
Selection.Find(What:=toDay, After:=ActiveCell, LookIn:=xlFormulas, LookAt _
:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:= _
False, MatchByte:=False, SearchFormat:=False).Activate
y = ActiveCell.Row()

On Error GoTo 0
Cells(y, x).Select
Exit Sub
notFindName:
MsgBox "没有找到你需要的人员姓名(" & FindName & ")!", vbInformation + vbOKOnly, "人员&日期定位宏"
oldcell.Select
Exit Sub
notFindDate:
MsgBox "没有找到今天的日期(" & CStr(toDay) & ")!", vbInformation + vbOKOnly, "人员&日期定位宏"
Cells(1, x).Select
End Sub

注:它会将你所选择的单元格内容默认为要查找的人员姓名,当然你可以修改之。

有疑问或问题请Hi我或给我发BaiDu消息。
GoodLuck!本回答被提问者采纳
参考技术B 问题没说清楚。 参考技术C 你是要用对话框查询的吧
不是很明白你的意思,上个截图吧,我可以帮你写VBE代码
参考技术D 可以。HI我

Excel 使用单元格的值 查询MySQL数据库并返回数据给相应的单元格

Dim MyConn As Object
Private Sub ConnectDB()
Set MyConn = CreateObject("ADODB.Connection")    ----->创建连接对象
Dim str As String
str = "DRIVER={MySQL ODBC 5.3 Unicode Driver};" & _   ---->拼接连接语句   odbc驱动 
"SERVER=localhost;" & _                         ---->  主机

"PORT=3306;" & _    ----->端口号

"DATABASE=test;" & _   ----->指定数据库
"USER=read;" & _          ------>用户名
"PASSWORD=read;" & _     ------>密码
"Option=3"
MyConn.Open str    ---->打开连接


Dim sql As String
Dim i As Integer

Dim field As String

 

-----------循环开始

For i=1 To 500 

 

field = Worksheets("Sheet4").Cells(i, 5) --->从单元格获取查询条件

 sql = "select delivery_no from tb_table where tb_table.order_id = ‘" & field &"‘"  ----->拼接sql 


Sheets("sheet1").Cells(i, 3).CopyFromRecordset MyConn.Execute(sql)     ----->把查询结果赋值到sheet1第3列

Next i

-------------循环结束


MyConn.Close     ----->关闭连接

End Sub














以上是关于excel宏命令 如何查找并定位相应单元格的主要内容,如果未能解决你的问题,请参考以下文章

excel表格怎么从一个表格中去查找另一个表格的所有数据?

Excel中如何定位空值单元格

excel两个工作表如何关联

如何在excel一个工作表中的一大堆数据中找一部分自己需要的数据

EXCEL这列中的空单元格为啥选“空值”定位不了?

如何快速搜索出excel工作表中哪些单元格链接到其他数据源?