用VBA复制sheet1考勤表生成12个月考勤表,并用月份命名sheet。

用VBA编写一段代码,复制sheet1考勤表生成12个月考勤表,并用月份命名sheet。把对应月份填入指定单元格,为什么指定单元格的月份和用月份命名的sheet总对应不上呢?而且sheet1也改变了。
在sheet1的A2里输入2018-1-1
Sub AddSh()
Dim a$, b% 'a%改为a$
For b = 1 To 12
a = b & "月"
Sheets(1).Activate '此句不可少
Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = a
Sheets(1).Cells.Copy Sheets(a).Cells
Sheets(a).Activate
Range("a2").MergeArea.ClearContents
[a2].Value = "2017年" & b & "月1日"
Next
End Sub
执行结果sheet1变成了2017年12月1日
1月命名的sheet的A2=2018年1月1日
2月命名的sheet的A2=2017年1月1日
我要的结果是sheet1的A2保持当初输入的月份2018年1月1日不变
后面对应月份命名的sheet的A2里就是对应的年月。
1月命名的sheet的A2=2017年1月1日
2月命名的sheet的A2=2017年2月1日

改成这样好了!
Sub AddSh()
Dim a$, b% 'a%改为a$

For b = 1 To 12
a = b & "月"
Sheets(1).Activate '此句不可少
Worksheets.Add(after:=Worksheets(Worksheets.Count)).Name = a
Sheets(1).Cells.Copy Sheets(a).Cells
Sheets(a).Range("a2").MergeArea.ClearContents
Sheets(a).[a2].Value = "2017年" & b & "月1日"
Next
End Sub
温馨提示:答案为网友推荐,仅供参考

相关了解……

你可能感兴趣的内容

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 非常风气网