前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Excel应用实践19:根据工作表某列中的值从另一工作簿中获取数据

Excel应用实践19:根据工作表某列中的值从另一工作簿中获取数据

作者头像
fanjy
发布2019-08-27 09:48:41
18.6K0
发布2019-08-27 09:48:41
举报
文章被收录于专栏:完美Excel完美Excel

excelperfect

在下图1所示的工作簿Data.xlsx的工作表Sheet1中,存放着待使用的数据。

图1

在下图2所示的工作簿GetData.xlsm中,根据列C中的数据,在上图1的工作簿Data.xlsx的列E中查找是否存在相应数据的单元格。

图2

然后,将Data.xlsx中对应行的列I至列K单元格中的数据复制到GetData.xlsm相应的单元格中,如下图3所示。

图3

在工作簿GetData.xlsm中,输入代码:

Sub CopyData()

'关闭屏幕刷新

Application.ScreenUpdating = False

'声明变量

Dim LastRow As Long

Dim wksData As Worksheet

Dim rng As Range

Dim rngFound As Range

'赋值为存储数据的工作表

Set wksData =Workbooks("Data.xlsx").Sheets("Sheet1")

'判断所选单元格是否在列C中

If ActiveCell.Column<> 3 Then

MsgBox ("请选择列C中的单元格或单元格区域.")

Exit Sub

Else

'遍历所选的单元格

For Each rng In Selection

'在数据工作表中查找相应的值所在的单元格

Set rngFound =wksData.Range("E:E").Find(rng, LookIn:=xlValues, lookat:=xlWhole)

'如果找到

If Not rngFound Is Nothing Then

'将相关单元格的数据复制到当前工作表相应单元格

rng.Offset(0,4).Resize(1, 3).Value = rngFound.Offset(0, 4).Resize(1, 3).Value

End If

Next rng

End If

'打开屏幕刷新

Application.ScreenUpdating = True

End Sub

代码中,使用了Find方法来查找数据所在的单元格,使用Offset属性偏移到指定的单元格,使用Resize属性来扩展单元格区域。

注意,要使代码正常运行,应该将两个工作簿都打开。

代码的图片版如下:

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2019-08-25,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 完美Excel 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档