永发信息网

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

答案:2  悬赏:10  手机版
解决时间 2021-11-26 00:36
  • 提问者网友:我一贱你就笑
  • 2021-11-25 04:00
用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日
最佳答案
  • 五星知识达人网友:举杯邀酒敬孤独
  • 2019-09-15 19:55
改成这样好了!
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
全部回答
  • 1楼网友:爱难随人意
  • 2019-11-01 12:27
你说呢...
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯