Excel精英培训网

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

[已解决]查找某一单元格内容(日期)在另外工作表中的位置并复制对应内容的代码。

[复制链接]
发表于 2016-6-12 07:58 | 显示全部楼层 |阅读模式
本帖最后由 一片薄云 于 2016-6-12 09:37 编辑

a.JPG
请求老师帮助:工作表“查询”a1单元格输入日期完成后  (比如按回车键或选择其他单元格),自动在a2、b2单元格填写表1、表2,并将填写的日期在工作表“表1”、“表2”中搜索,搜索到的单元格下面内容(9行)分别复制到工作表“查询”的a2、b2下面。

同样在其他单元格比如e1、f1输入也要有同样效果。

最佳答案
2016-6-12 09:12
放在查询表时间中,只能实现输入日期后双击日期出结果,Worksheet_Change事件好像做不到!
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2.     Dim rng1 As Range, arr(), brr()
  3.     Set rng = Target
  4.     With Target
  5.         If .Row = 1 And Target <> "" Then
  6.             Set rng1 = Sheet1.Cells.Find(What:=.Value, LookIn:=xlValues, LookAt:=xlWhole)
  7.             arr = rng1.Offset(1, 0).Resize(9, 1)
  8.             .Offset(1, 0) = "表1"
  9.             .Offset(2, 0).Resize(9, 1) = arr
  10.             Set rng1 = Sheet2.Cells.Find(What:=.Value, LookIn:=xlValues, LookAt:=xlWhole)
  11.             brr = rng1.Offset(1, 0).Resize(9, 1)
  12.             .Offset(1, 1) = "表2"
  13.             .Offset(2, 1).Resize(9, 1) = brr
  14.         End If
  15.     End With
  16.     Cancel = True
  17. End Sub
复制代码

工作簿1.zip

8.94 KB, 下载次数: 26

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2016-6-12 08:29 | 显示全部楼层
附件

工作簿1.rar

9.33 KB, 下载次数: 32

回复

使用道具 举报

 楼主| 发表于 2016-6-12 08:40 | 显示全部楼层
baksy 发表于 2016-6-12 08:29
附件

非常感谢帮助,我想用VBA代码,以便延深使用。
回复

使用道具 举报

发表于 2016-6-12 09:08 | 显示全部楼层
  1. Sub ppp()
  2.   Dim arr, k, i, rng
  3.   Sheets(3).Range("a2:b100").Clear
  4.   For i = 1 To 2
  5.   With Worksheets(i).Range("a1:k500")
  6.     Set rng = .Find(Sheets(3).Cells(1, 1).Value, LookIn:=xlValues)
  7.     If Not rng Is Nothing Then
  8.       arr = rng.Offset(1, 0).Resize(9, 1)
  9.     End If
  10. End With
  11. With Sheets(3)

  12. .Cells(2, i) = "表" & i
  13. .Cells(3, i).Resize(9, 1) = arr
  14. End With
  15. Set rng = Nothing

  16. Next

  17. End Sub
复制代码
回复

使用道具 举报

发表于 2016-6-12 09:10 | 显示全部楼层
工作簿1.rar (17.59 KB, 下载次数: 67)
回复

使用道具 举报

发表于 2016-6-12 09:12 | 显示全部楼层    本楼为最佳答案   
放在查询表时间中,只能实现输入日期后双击日期出结果,Worksheet_Change事件好像做不到!
  1. Private Sub Worksheet_BeforeDoubleClick(ByVal Target As Range, Cancel As Boolean)
  2.     Dim rng1 As Range, arr(), brr()
  3.     Set rng = Target
  4.     With Target
  5.         If .Row = 1 And Target <> "" Then
  6.             Set rng1 = Sheet1.Cells.Find(What:=.Value, LookIn:=xlValues, LookAt:=xlWhole)
  7.             arr = rng1.Offset(1, 0).Resize(9, 1)
  8.             .Offset(1, 0) = "表1"
  9.             .Offset(2, 0).Resize(9, 1) = arr
  10.             Set rng1 = Sheet2.Cells.Find(What:=.Value, LookIn:=xlValues, LookAt:=xlWhole)
  11.             brr = rng1.Offset(1, 0).Resize(9, 1)
  12.             .Offset(1, 1) = "表2"
  13.             .Offset(2, 1).Resize(9, 1) = brr
  14.         End If
  15.     End With
  16.     Cancel = True
  17. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2016-6-12 09:41 | 显示全部楼层
ppp710715 发表于 2016-6-12 09:08

非常感谢!完美解决了我的问题!
回复

使用道具 举报

 楼主| 发表于 2016-6-12 11:14 | 显示全部楼层
ppp710715 发表于 2016-6-12 09:08

非常感谢帮忙!
回复

使用道具 举报

发表于 2016-6-12 16:43 | 显示全部楼层
不客气。互相学习。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-23 22:35 , Processed in 0.530089 second(s), 13 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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