把职称复制到另外一个表

时间: 2017-11-12 / 分类: EXCEL编程VBA / 浏览次数: 146 views / 0个评论 发表评论
Sub Macro1()
'
' Macro1 Macro
'
'
Dim a
Dim i
Dim j
Dim v1, v2 As String
Dim l1, l2
Dim m
Dim n

Dim sh1, sh2 As Worksheet
Set sh1 = Worksheets(1) '表1
Set sh2 = Worksheets(2) '表2




For a = 1 To 10  '一次处理 表1 的 10行

i = Selection.Row
j = Selection.Column
v1 = Trim(Selection.Value) '去掉前后空白的员工姓名


If v1 = "" Then Exit For   '选择的格子为空就停止处理


sh2.Select

Cells.Find(What:=v1, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, MatchByte:=False, SearchFormat:=False).Activate


m = Selection.Row
n = Selection.Column

sh1.Select
Range("F" & i).Value = sh2.Range("D" & m).Value  '把需要的职称数据从 表2   m行的 D列 复制到 表1 的 i 行F列 下同 ,range对象表示连续的区域有两种表达:第一是range("起始单元格","结束单元格"),第二是range("起始单元格:结束单元格") 
Range("G" & i).Value = sh2.Range("E" & m).Value
Range("H" & i).Value = sh2.Range("F" & m).Value
Range("I" & i).Value = sh2.Range("G" & m).Value

i = i + 1
Range("C" & i).Select   '选择下一列  表1 姓名必须在C列

Next


End Sub

发表评论

你必须 登录后 才能留言!