Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2206|回复: 9

[已解决]查找VBA

[复制链接]
发表于 2012-11-29 01:07 | 显示全部楼层 |阅读模式
本帖最后由 fangniuji 于 2012-11-29 09:59 编辑

帮忙一下在这边,写个查找Vba,Ah列编号对应AI列孔型,再看整理介绍

B2默认为编号T01,B3默认为编号T02,以此类推,故E2等于AA,E11=BB,E21=CC
最佳答案
2012-12-1 11:54
  1. Sub 扫描()
  2.     Dim irow&
  3.     Dim arr, i&
  4.     irow = Range("ah" & Rows.Count).End(xlUp).Row()
  5.     If irow = 1 Then Exit Sub
  6.     With Worksheets("扫孔")
  7.         arr = .Range("ah1").CurrentRegion
  8.         .Range("ah1").CurrentRegion.ClearContents
  9.     End With
  10.     On Error Resume Next
  11.     With Worksheets("整理")
  12.         If Err.Number <> 0 Then
  13.             MsgBox "工作表读取错误"
  14.             Err.Clear
  15.             Exit Sub
  16.         End If
  17.         For i = LBound(arr) + 1 To UBound(arr)
  18.             
  19.             irow = .Range("a:a").Find(Trim(arr(i, 1)), LookIn:=xlValues, lookat:=xlWhole).Row()
  20.             If Err.Number <> 0 Then
  21.                 MsgBox arr(i, 1) & "无匹配项"
  22.                 Err.Clear
  23.             Else
  24.                 arr(i, 2) = .Cells(irow, "e").Value
  25.             End If
  26.         Next
  27.     End With
  28.     With Worksheets("扫孔")
  29.         .Range("ah1").CurrentRegion.ClearContents
  30.         .Range("ah1").Resize(UBound(arr), UBound(arr, 2)) = arr
  31.     End With
  32. End Sub
复制代码
其实用VLOOKUP就能解决啊。

自动查找孔型说明.rar

155.24 KB, 下载次数: 1

发表于 2012-11-29 08:20 | 显示全部楼层
回复

使用道具 举报

发表于 2012-11-29 08:23 | 显示全部楼层
回复

使用道具 举报

 楼主| 发表于 2012-11-29 09:58 | 显示全部楼层
zjdh 发表于 2012-11-29 08:23
看不明白!

重新说明一下,帮我看看,谢谢。

自动查找孔型说明.rar

155.24 KB, 下载次数: 16

回复

使用道具 举报

 楼主| 发表于 2012-11-29 12:15 | 显示全部楼层
E路人 发表于 2012-11-29 08:20
孔型这个莫非是编号,没看明白。

是的,谢谢关心,谢谢。。
回复

使用道具 举报

发表于 2012-11-30 08:30 | 显示全部楼层
结果写在哪个工作表里?
回复

使用道具 举报

发表于 2012-11-30 16:47 | 显示全部楼层
标记,晚上再来做。
回复

使用道具 举报

发表于 2012-12-1 11:54 | 显示全部楼层    本楼为最佳答案   
  1. Sub 扫描()
  2.     Dim irow&
  3.     Dim arr, i&
  4.     irow = Range("ah" & Rows.Count).End(xlUp).Row()
  5.     If irow = 1 Then Exit Sub
  6.     With Worksheets("扫孔")
  7.         arr = .Range("ah1").CurrentRegion
  8.         .Range("ah1").CurrentRegion.ClearContents
  9.     End With
  10.     On Error Resume Next
  11.     With Worksheets("整理")
  12.         If Err.Number <> 0 Then
  13.             MsgBox "工作表读取错误"
  14.             Err.Clear
  15.             Exit Sub
  16.         End If
  17.         For i = LBound(arr) + 1 To UBound(arr)
  18.             
  19.             irow = .Range("a:a").Find(Trim(arr(i, 1)), LookIn:=xlValues, lookat:=xlWhole).Row()
  20.             If Err.Number <> 0 Then
  21.                 MsgBox arr(i, 1) & "无匹配项"
  22.                 Err.Clear
  23.             Else
  24.                 arr(i, 2) = .Cells(irow, "e").Value
  25.             End If
  26.         Next
  27.     End With
  28.     With Worksheets("扫孔")
  29.         .Range("ah1").CurrentRegion.ClearContents
  30.         .Range("ah1").Resize(UBound(arr), UBound(arr, 2)) = arr
  31.     End With
  32. End Sub
复制代码
其实用VLOOKUP就能解决啊。
回复

使用道具 举报

发表于 2012-12-1 12:15 | 显示全部楼层
  1. Sub 扫描2()
  2.     Dim irow&
  3.     Dim arr, i&
  4.     Dim arr2(), k&
  5.     With Worksheets("整理")
  6.         irow = .Range("a" & Rows.Count).End(xlUp).Row()
  7.         If irow = 1 Then Exit Sub
  8.         arr = .Range("a2:e" & irow).CurrentRegion
  9.     End With
  10.     Application.ScreenUpdating = False
  11.     'k = 1
  12.     For i = LBound(arr) To UBound(arr)
  13.         If Len(arr(i, 5)) > 0 Then
  14.             k = k + 1
  15.             ReDim Preserve arr2(1 To 2, 1 To k)
  16.             arr2(1, k) = arr(i, 1)
  17.             arr2(2, k) = arr(i, 5)
  18.         End If
  19.     Next
  20.     arr2(1, 1) = "编号"
  21.     arr2(2, 1) = "孔型"
  22.     arr2 = WorksheetFunction.Transpose(arr2)
  23.    
  24.     With Worksheets("扫孔")
  25.         .Range("ah1").CurrentRegion.ClearContents
  26.         .Range("ah1").Resize(UBound(arr2), UBound(arr2, 2)) = arr2
  27.     End With
  28.    
  29.     Application.ScreenUpdating = True
  30.     MsgBox "扫描完成"
  31. End Sub
复制代码
回复

使用道具 举报

发表于 2013-5-14 15:20 | 显示全部楼层
我想问一下这个问题怎么实现
如图为表1
我想在表2中的A1单元格输入数字   能查找出表1中A列对应数值的整行且显示到 表2中的第2行
在表2中还要能修改这行的数值 同时表1中的数值也要被修改


这个怎么做到啊·········
跪求高手指点{:091:}
加急快递{:361:}
1.jpg
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-4-27 08:55 , Processed in 0.375108 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表