在下圖1所示的工作簿Data.xlsx的工作表Sheet1中,存放著待使用的數(shù)據(jù)。

圖3
在工作簿GetData.xlsm中,輸入代碼:
Sub CopyData()
‘關(guān)閉屏幕刷新
Application.ScreenUpdating = False
‘聲明變量
Dim LastRow As Long
Dim wksData As Worksheet
Dim rng As Range
Dim rngFound As Range
‘賦值為存儲(chǔ)數(shù)據(jù)的工作表
Set wksData =Workbooks(“Data.xlsx”).Sheets(“Sheet1”)
‘判斷所選單元格是否在列C中
If ActiveCell.Column<> 3 Then
MsgBox (“請(qǐng)選擇列C中的單元格或單元格區(qū)域.”)
Exit Sub
Else
‘遍歷所選的單元格
For Each rng In Selection
‘在數(shù)據(jù)工作表中查找相應(yīng)的值所在的單元格
Set rngFound =wksData.Range(“E:E”).Find(rng, LookIn:=xlValues, lookat:=xlWhole)
‘如果找到
If Not rngFound Is Nothing Then
‘將相關(guān)單元格的數(shù)據(jù)復(fù)制到當(dāng)前工作表相應(yīng)單元格
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方法來查找數(shù)據(jù)所在的單元格,使用Offset屬性偏移到指定的單元格,使用Resize屬性來擴(kuò)展單元格區(qū)域。
注意,要使代碼正常運(yùn)行,應(yīng)該將兩個(gè)工作簿都打開。






