Excel精英培训网

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

[已解决]在线等,求修改合并单元格的循环,谢了.

[复制链接]
发表于 2013-3-21 16:15 | 显示全部楼层 |阅读模式
  ' If (i Mod 24) = 1 Then
      ' k = k + 1
      ' Cells(i, 1).Resize(24).Merge
       'Cells(i, 1) = Sheets("填表").Cells(k + 1, 1)
       'Brr(i, 1) = Arr(j, 1)      '写入 名称
    ' End If
sheet1中每一行数据对应sheet2中24行结果,想在sheet2中将24行合并生成sheet1一样的标题
最佳答案
2013-3-21 17:52
  1. Sub 合并()
  2.     Dim i As Long, k As Long
  3.     Dim arr
  4.     Application.ScreenUpdating = False
  5.     With Worksheets("填表")
  6.         arr = .Range("a1").CurrentRegion
  7.     End With
  8.     With Worksheets("命令")
  9.         For i = 2 To UBound(arr)
  10.             k = (i - 2) * 24 + 1
  11.             .Range("a" & k).Resize(24).Merge
  12.             .Range("a" & k) = arr(i, 1)
  13.         Next
  14.     End With
  15.     Application.ScreenUpdating = True
  16.     MsgBox "合并完成", vbInformation
  17. End Sub
复制代码
循环.png

1大唐数据制作.rar

47.37 KB, 下载次数: 6

发表于 2013-3-21 16:33 | 显示全部楼层
  1. Sub 合并()
  2.     Dim i As Long, k As Long
  3.     Dim arr
  4.     With Worksheets("填表")
  5.         arr = .Range("a1").CurrentRegion
  6.     End With
  7.     For i = 2 To UBound(arr)
  8.         k = arr(i, 1)
  9.         k = (k - 1) * 24 + 1
  10.         Debug.Print k
  11.         Range("a" & k).Resize(24).Merge
  12.         Range("a" & k) = "ap" & arr(i, 1)
  13.     Next
  14. End Sub
复制代码
回复

使用道具 举报

发表于 2013-3-21 16:35 | 显示全部楼层
  1. Sub 合并()
  2.     Dim i As Long, k As Long
  3.     Dim arr
  4.     With Worksheets("填表")
  5.         arr = .Range("a1").CurrentRegion
  6.     End With
  7.     For i = 2 To UBound(arr)
  8.         k = (arr(i, 1) - 1) * 24 + 1
  9.         Range("a" & k).Resize(24).Merge
  10.         Range("a" & k) = "ap" & arr(i, 1)
  11.     Next
  12. End Sub
复制代码
回复

使用道具 举报

发表于 2013-3-21 16:36 | 显示全部楼层
  1. Sub 合并()
  2.     Dim i As Long, k As Long
  3.     Dim arr
  4.     Application.ScreenUpdating = False
  5.     With Worksheets("填表")
  6.         arr = .Range("a1").CurrentRegion
  7.     End With
  8.     With Worksheets("命令")
  9.         For i = 2 To UBound(arr)
  10.             k = (arr(i, 1) - 1) * 24 + 1
  11.             .Range("a" & k).Resize(24).Merge
  12.             .Range("a" & k) = "ap" & arr(i, 1)
  13.         Next
  14.     End With
  15.     Application.ScreenUpdating = True
  16.     MsgBox "合并完成", vbInformation
  17. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2013-3-21 16:43 | 显示全部楼层
hwc2ycy 发表于 2013-3-21 16:36

执行不了,还是有错误啊
回复

使用道具 举报

发表于 2013-3-21 16:45 | 显示全部楼层
nysong10086 发表于 2013-3-21 16:43
执行不了,还是有错误啊

有错贴图,我这运行正常的,就用你的附件。

点评

胸美人好厉害哇,仰慕  发表于 2013-3-21 16:48
回复

使用道具 举报

 楼主| 发表于 2013-3-21 16:49 | 显示全部楼层
hwc2ycy 发表于 2013-3-21 16:45
有错贴图,我这运行正常的,就用你的附件。

k = (arr(i, 1) - 1) * 24 + 1  提示类型不匹配
错误提示.png
回复

使用道具 举报

发表于 2013-3-21 16:50 | 显示全部楼层
执行时,当前活动表为要合并的工作表,要么就用4楼代码,锁定工作表。
回复

使用道具 举报

 楼主| 发表于 2013-3-21 16:55 | 显示全部楼层
hwc2ycy 发表于 2013-3-21 16:50
执行时,当前活动表为要合并的工作表,要么就用4楼代码,锁定工作表。

4楼的代码也试了,也有错误提示跟那个一样
回复

使用道具 举报

发表于 2013-3-21 17:29 | 显示全部楼层
你点调试,再截图我看看。
你源数据里是不是有非数字的情况?
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-25 17:49 , Processed in 0.338628 second(s), 18 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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