Excel精英培训网

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

[已解决]顶端标题行与内容合并,相同日期的内容合并

[复制链接]
发表于 2013-3-9 14:44 | 显示全部楼层 |阅读模式
顶端标题行与内容合并,相同日期的内容合并.rar (4.28 KB, 下载次数: 14)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2013-3-9 15:06 | 显示全部楼层
  1. Sub 合并表格()
  2.     Dim lLastrow As Long
  3.     Dim i As Long, j As Long
  4.     Dim arr
  5.     Dim arrResult()
  6.     Dim strMerge As String
  7.    
  8.     lLastrow = Cells(Rows.Count, 2).End(xlUp).Row
  9.     arr = Range("b2:f" & lLastrow)
  10.     ReDim arrResult(1 To UBound(arr), 1 To 2)
  11.     arrResult(1, 1) = "日期"
  12.     arrResult(1, 2) = "事项"
  13.    
  14.     Application.ScreenUpdating = False
  15.     For i = 2 To UBound(arr)
  16.         
  17.         strMerge = ""
  18.         For j = LBound(arr) + 1 To UBound(arr, 2)
  19.             If Len(arr(i, j)) > 0 Then
  20.                 strMerge = strMerge & arr(1, j) & ":" & arr(i, j) & ";"
  21.             End If
  22.         Next
  23.         If Len(strMerge) > 0 Then
  24.         
  25.         arrResult(i, 1) = arr(i, 1)
  26.         strMerge = Left(strMerge, Len(strMerge) - 1) & "。"
  27.         arrResult(i, 2) = strMerge
  28.         End If
  29.     Next
  30.    
  31.     Columns("h:j") = ""
  32.     Range("h2").Resize(i - 1, j - 1) = arrResult
  33.     Application.ScreenUpdating = True
  34.     MsgBox "合并完成"
  35. End Sub
复制代码
回复

使用道具 举报

发表于 2013-3-9 15:11 | 显示全部楼层
  1. Sub 合并表格()
  2.     Dim lLastrow As Long
  3.     Dim i As Long, j As Long
  4.     Dim arr
  5.     Dim arrResult()
  6.     Dim strMerge As String
  7.    
  8.     lLastrow = Cells(Rows.Count, 2).End(xlUp).Row
  9.     arr = Range("b2:f" & lLastrow)
  10.     ReDim arrResult(1 To UBound(arr), 1 To 2)
  11.     arrResult(1, 1) = "日期"
  12.     arrResult(1, 2) = "事项"
  13.    
  14.     Application.ScreenUpdating = False
  15.     For i = 2 To UBound(arr)
  16.         
  17.         strMerge = ""
  18.         For j = LBound(arr) + 1 To UBound(arr, 2)
  19.             If Len(arr(i, j)) > 0 Then
  20.                 strMerge = strMerge & arr(1, j) & ":" & arr(i, j) & ";"
  21.             End If
  22.         Next
  23.         If Len(strMerge) > 0 Then
  24.         
  25.         arrResult(i, 1) = arr(i, 1)
  26.         strMerge = Left(strMerge, Len(strMerge) - 1) & "。"
  27.         arrResult(i, 2) = strMerge
  28.         End If
  29.     Next
  30.    
  31.     Columns("h:j") = ""
  32.     Range("h2").Resize(i - 1, j - 1) = arrResult
  33.     Application.ScreenUpdating = True
  34.     MsgBox "合并完成"
  35. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-3-9 16:34 | 显示全部楼层
谢谢大师们,我正在试用呢
回复

使用道具 举报

 楼主| 发表于 2013-3-9 16:38 | 显示全部楼层
试过后,就是相同的日期的内容无法合并在一起
回复

使用道具 举报

 楼主| 发表于 2013-3-9 17:07 | 显示全部楼层
另外这个VBA能否改成那种单元格改变时,自动执行的
回复

使用道具 举报

发表于 2013-3-9 23:21 | 显示全部楼层
你把你放了代码的附件放上来吧,我这测了是可以的。
回复

使用道具 举报

 楼主| 发表于 2013-3-10 12:05 | 显示全部楼层
已将代码做进去了,最好将VBA代码优化成单元格改变时自动执行

顶端标题行与内容合并,相同日期的内容合并.rar

7.84 KB, 下载次数: 6

回复

使用道具 举报

发表于 2013-3-10 20:50 | 显示全部楼层    本楼为最佳答案   
顶端标题行与内容合并,相同日期的内容合并.rar (11.49 KB, 下载次数: 20)
回复

使用道具 举报

 楼主| 发表于 2013-3-11 00:51 | 显示全部楼层
谢谢hwc2ycy 大师的倾力相助,非常感谢!!!!!!!!!!!!!!!!
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 10:44 , Processed in 0.652014 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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