Excel精英培训网

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

[已解决]取合并单元格的值

[复制链接]
发表于 2017-7-25 13:16 | 显示全部楼层 |阅读模式
本帖最后由 edisonx32123 于 2017-7-25 15:31 编辑

合并单元格的值原表.jpg
如上图,需要取业务分类行的合并单元格值放入sheets(2)的A列;取业务分类对应的合计行的值放入sheets(2)的B列;效果如下图:
请问这种需要取合并单元格的值得代码该如何编写,谢谢


QQ截图20170725131504.jpg
最佳答案
2017-7-25 15:15
  1. Sub aaa()
  2. Dim arr, j&, r&
  3. With Sheets(1)
  4.   ReDim arr(1 To Application.Count(.Rows(13)) + 1, 1 To 2)
  5.   r = 1: arr(1, 1) = "业务分类": arr(1, 2) = "合计"
  6.   For j = 2 To .Cells(13, Columns.Count).End(1).Column
  7.     r = r + 1
  8.     arr(r, 1) = .Cells(2, j)
  9.     arr(r, 2) = .Cells(13, j)
  10.     j = j + .Cells(13, j).MergeArea.Columns.Count - 1
  11.   Next j
  12. End With
  13. Sheets(2).[a1].Resize(UBound(arr), 2) = arr
  14. End Sub
复制代码

合并单元格的取值.rar

23.15 KB, 下载次数: 7

excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2017-7-25 13:36 | 显示全部楼层
本帖最后由 kevinpj 于 2017-7-25 13:39 编辑

直接用等号不就可以了吗?
例如:
Sheet2 的A2单元格公式:=Sheet1!B2
Sheet2 的A3单元格公式:=Sheet1!G2

Sheet2 的B2单元格公式:=Sheet1!B13
Sheet2 的B3单元格公式:=Sheet1!G13

回复

使用道具 举报

发表于 2017-7-25 13:49 | 显示全部楼层
本帖最后由 大灰狼1976 于 2017-7-25 13:59 编辑
  1. Sub aaa()
  2. Dim arr(1 To 7, 1 To 1), j&, r&
  3. With Sheets(1)
  4.   For j = 2 To .Cells(13, Columns.Count).End(1).Column
  5.     If .Cells(13, j) <> "" Then
  6.       r = r + 1
  7.       arr(r, 1) = .Cells(13, j)
  8.     End If
  9.   Next j
  10. End With
  11. Sheets(2).[b2].Resize(7) = arr
  12. End Sub
复制代码
回复

使用道具 举报

发表于 2017-7-25 13:59 | 显示全部楼层
这样也可以。
  1. Sub aaa()
  2. Dim arr(1 To 7, 1 To 1), j&, r&
  3. With Sheets(1)
  4.   For j = 2 To .Cells(13, Columns.Count).End(1).Column
  5.     r = r + 1
  6.     arr(r, 1) = .Cells(13, j)
  7.     j = j + .Cells(13, j).MergeArea.Columns.Count - 1
  8.   Next j
  9. End With
  10. Sheets(2).[b2].Resize(7) = arr
  11. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-7-25 14:25 | 显示全部楼层

谢谢,每次都得到你帮助,十分感谢!另外还有2个问题请教:1.实际操作的时候,sheets(2)是没有任何数据的,2列数据包括标题都需要用代码取值

2.A列的合计位置根据数据的更新会变化,可能是A13,可能是A20,也可能是A100

请问上述2个问题,能怎么解决

回复

使用道具 举报

发表于 2017-7-25 15:15 | 显示全部楼层    本楼为最佳答案   
  1. Sub aaa()
  2. Dim arr, j&, r&
  3. With Sheets(1)
  4.   ReDim arr(1 To Application.Count(.Rows(13)) + 1, 1 To 2)
  5.   r = 1: arr(1, 1) = "业务分类": arr(1, 2) = "合计"
  6.   For j = 2 To .Cells(13, Columns.Count).End(1).Column
  7.     r = r + 1
  8.     arr(r, 1) = .Cells(2, j)
  9.     arr(r, 2) = .Cells(13, j)
  10.     j = j + .Cells(13, j).MergeArea.Columns.Count - 1
  11.   Next j
  12. End With
  13. Sheets(2).[a1].Resize(UBound(arr), 2) = arr
  14. End Sub
复制代码
回复

使用道具 举报

 楼主| 发表于 2017-7-25 15:30 | 显示全部楼层
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-3-29 02:02 , Processed in 0.322303 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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