Excel精英培训网

 找回密码
 注册
数据透视表40+个常用小技巧,让你一次学会!
查看: 2331|回复: 4

自动按月份(日期期间),在各自的开始行处生成一个相应的月份名称

[复制链接]
发表于 2015-10-29 10:43 | 显示全部楼层 |阅读模式
请高手们帮设计代码,能够实现:1、根据将表2的C列C4以下单元格的数据,自动按月份(日期期间),在各自的开始行处生成一个相应的月份名称,(如2015年4月、2015年5月、2015年6月等),以此类推,然后将该列数据自动复制到1表中的M列M2以下的单元格。效果图如表1M列所示。谢谢了。

工作簿1.rar

24.33 KB, 下载次数: 10

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2015-10-29 11:23 | 显示全部楼层
本帖最后由 Tank008 于 2015-10-29 11:26 编辑
  1. Sub 分段月份()
  2.     Dim arr, iRows As Long
  3.     iRows = Sheets("表2").Range("C65536").End(xlUp).Row
  4.     arr = Sheets("表2").Range("C4:C" & iRows)
  5.    
  6.     Dim i As Long, brr(1 To 100000, 1 To 1), k As Long
  7.     brr(1, 1) = Format(arr(1, 1), "yyyy年mm月")
  8.     brr(2, 1) = arr(1, 1)
  9.     k = 2
  10.     For i = 2 To UBound(arr)
  11.         If Format(arr(i, 1), "yyyy年mm月") = Format(brr(k, 1), "yyyy年mm月") Then
  12.             k = k + 1
  13.             brr(k, 1) = arr(i, 1)
  14.         Else
  15.             k = k + 1
  16.             brr(k, 1) = Format(arr(i, 1), "yyyy年mm月")
  17.             k = k + 1
  18.             brr(k, 1) = arr(i, 1)
  19.         End If
  20.     Next i
  21.     Sheets("表1").Range("M2").Resize(k) = brr
  22. End Sub
复制代码
回复

使用道具 举报

发表于 2015-10-29 11:24 | 显示全部楼层
PS:工作表名改成了“表1”、“表2”
回复

使用道具 举报

发表于 2015-10-29 13:27 | 显示全部楼层
为何不把其他的要求也一并说明呢?
回复

使用道具 举报

 楼主| 发表于 2015-10-29 23:04 | 显示全部楼层
Tank008 发表于 2015-10-29 11:23

你好,是可以了,但是怎么只有生成的“2015年4月”,其他的只显示日期格式,如2015-5-1等,是那里有问题了,你睭帮忙看看,好吗?谢谢了。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|Excel精英培训 ( 豫ICP备11015029号 )

GMT+8, 2024-5-9 08:18 , Processed in 0.294471 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表