|
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件 ★ 免费下载 ★ ★ 使用帮助★
这个用VBA,做一个小的sub可以搞定,大体思路,有多少人就循环多少次,每次从花名册将一行的数据抽取为一个数组,然后打开个人信息空表,将数组内数据一一对应的赋值在个人信息表内,最后用SAVEAS保存为个人姓名即可
我做过一个类似的小sub
Sub FBBG()
Dim i As Integer
Dim sName As String
For i = 2 To 146 Step 1 '花名册内从第几行到第几行
Dim myarray '定义数组
myarray = Range(Cells(i, 1), Cells(i, 14)) '从单元格提取数组,从第几列到第几列,我这里是1到14列
Workbooks.Open "C:\Documents and Settings\Administrator\桌面\花名册\个人简历.xls" '打开需填表格
Sheets("附件1").Range("b3") = myarray(1, 1) '根据实际情况填写对应关系,可将sheets()括号内修改为实际的表名,range()括号内是个人信息的表格内的单元格 ,这里我这句话的意思是个人信息表B3里填充花名册内第一列的数据,下面的语句都一样,有多少个需要填的就对应写几句
Sheets("附件1").Range("d3") = myarray(1, 2)
Sheets("附件1").Range("b4") = myarray(1, 3)
Sheets("附件1").Range("d6") = myarray(1, 5)
Sheets("附件1").Range("d8") = myarray(1, 4)
Sheets("附件1").Range("d9") = myarray(1, 7)
Sheets("附件1").Range("b9") = myarray(1, 6)
Sheets("附件1").Range("b10") = myarray(1, 8)
Sheets("附件1").Range("d10") = myarray(1, 10)
Sheets("附件1").Range("d11") = myarray(1, 11)
Sheets("附件1").Range("b12") = myarray(1, 13)
Sheets("附件2").Range("b4") = myarray(1, 1)
Sheets("附件2").Range("f4") = myarray(1, 2)
Sheets("附件2").Range("c5") = myarray(1, 3)
sName = myarray(1, 2) '提取名字,这里是提取数组内姓名的内容,便于在下面将填写好的个人信息表另存为个人的名字
ActiveWorkbook.SaveAs Filename:="C:\Documents and Settings\Administrator\桌面\花名册\个人\" & sName & ".xls" '另存为姓名为名的个人信息表,路径根据实际情况更改即可
ActiveWorkbook.Close (True)
Next
End Sub
|
评分
-
1
查看全部评分
-
|