在下图1所示的工作簿Data.xlsx的工作表Sheet1中 , 存放着待使用的数据 。
【excel工作表某列中的值从另一工作簿中获取数据】
文章插图
图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 =https://www.i8ku.com/2021/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 = https://www.i8ku.com/2021/rngFound.Offset(0, 4).Resize(1, 3).Value
End If
Next rng
End If
‘打开屏幕刷新
Application.ScreenUpdating = True
End Sub
代码中 , 使用了Find方法来查找数据所在的单元格 , 使用Offset属性偏移到指定的单元格 , 使用Resize属性来扩展单元格区域 。
注意 , 要使代码正常运行 , 应该将两个工作簿都打开 。
推荐阅读
- excel图表怎么清楚地定位散点图中的数据点
- excel图表怎么获取颜色的十六进制代码
- 超级店长怎么设置客服工资?客服需要哪些条件?
- excel怎么避免因补充破坏数据有效性
- 按照指定工作表中的数据顺序对另一工作表中的数据排序
- 怎样使用矩阵数据在工作表中绘制线条?
- 适用于Excel Windows API查看器
- excel队列
- excel实战技巧:模拟占位输出
- 红豆小米粥怎么做好吃