VBA For Excel:通过一列数据来创建工作表

0
1182

说明:工作簿A.xlsx包含工作表TMP和DATA,TMP工作表为一个空白的模板,DATA中,A列为姓名,B列为账号,C列为经办人员,D列为时间,总共100人。
要求:通过DATA中的数据为每个人创建一张工作表,工作表包含B3为姓名,B3为账号,B26为经办,G26为时间,另外每张表样式同TMP工作表。

按如上要求那么会新建100张工作表,如果手工去完成,耗费的时间不言而喻,所以就用VBA来解决。在现实中,我所遇到的不止100人,本来是这些数据完全不用统计的,因为完全无意义,下面的应付上面的,也可说是一种责任的推脱。

来看代码:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Sub update_data()
Dim i As Integer
Dim m As Integer
'工作表TMP需在DATA之前
'DATA工作表户名判断 LOOKUP(H1,{"C3801","C5000"},{"张三","李四"}) :条件值需以升序排列
'DATA工作表中A=账号B=户名C=经办员D=日期
 
m = Worksheets("DATA").UsedRange.Rows.Count
 
For i = 1 To m
 
Worksheets("TMP").Copy before:=Worksheets(i)
 
'ActiveWorkbook.Sheets.Add before:=Worksheets(Worksheets.Count)
 
Worksheets(i).Name = i
 
Worksheets(i).Range("B2").Value = Worksheets("DATA").Range("B" & i).Value   '获取名字
Worksheets(i).Range("B3").Value = Worksheets("DATA").Range("A" & i).Value   '获取账号
Worksheets(i).Range("B26").Value = "初评人员:" & Worksheets("DATA").Range("C" & i).Value '获取柜员号
Worksheets(i).Range("G26").Value = "评价时间:" & Worksheets("DATA").Range("D" & i).Value '获取开户时间
 
Next i
 
 
End Sub

发表回复

Please enter your comment!
Please enter your name here