ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

搜索
EH技术汇-专业的职场技能充电站 妙哉!函数段子手趣味讲函数 Excel服务器-会Excel,做管理系统 效率神器,一键搞定繁琐工作
HR薪酬管理数字化实战 Excel 2021函数公式学习大典 Excel数据透视表实战秘技 打造核心竞争力的职场宝典
让更多数据处理,一键完成 数据工作者的案头书 免费直播课集锦 ExcelHome出品 - VBA代码宝免费下载
用ChatGPT与VBA一键搞定Excel WPS表格从入门到精通 Excel VBA经典代码实践指南
123
返回列表 发新帖
楼主: ①然如故

[求助] 提取3列数据拆分为6列

[复制链接]

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-20 22:10 | 显示全部楼层

您好,能否直接上传附件,谢谢!

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-20 22:14 | 显示全部楼层
不知道为什么 发表于 2018-9-20 22:05
我考虑到你可能后续会提出更多。所以本来想帮你一并全部处理了。
那如果只是那样就更简单了啊

您好,对的只要当第二列满足条件为“丝织警号”就提取对应数据并统计。

TA的精华主题

TA的得分主题

发表于 2018-9-20 22:16 | 显示全部楼层
①然如故 发表于 2018-9-20 22:14
您好,对的只要当第二列满足条件为“丝织警号”就提取对应数据并统计。

如图,就是这个意思?

D1.gif

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-9-20 22:18 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-20 22:23 | 显示全部楼层

不知道为什么您好,能不能不把代码转成图片,这样可直接复制工作簿中应用,谢谢!

TA的精华主题

TA的得分主题

发表于 2018-9-20 22:24 | 显示全部楼层
①然如故 发表于 2018-9-20 22:23
不知道为什么您好,能不能不把代码转成图片,这样可直接复制工作簿中应用,谢谢!

代码供参考!

  1. Sub 拆分2()
  2.     Dim Arr, Brr(), Crr(), Bt, Ms$
  3.     Dim i%, x%, n%, s%, n1%, n2%, a%, b&
  4.     Dim LastRow%, m
  5.     Application.ScreenUpdating = False
  6.     Arr = Sheets("数据源").[a1].CurrentRegion
  7.     Bt = Array("单位名称3", "警号", "数量", "单位名称3", "警号", "数量")
  8.     Ms = Sheets("丝织警号").Cells(1, 1)
  9.     ReDim Brr(1 To UBound(Arr), 1 To 6)
  10.     For i = 2 To UBound(Arr)
  11.         If Arr(i, 2) = Ms Then
  12.             x = x + 1
  13.             Brr(x, 1) = Arr(i, 5)
  14.             Brr(x, 2) = Arr(i, 9)
  15.             Brr(x, 3) = Arr(i, 11)
  16.         End If
  17.     Next i
  18.     For i = 1 To x - 1
  19.         n1 = i: n = i
  20.         Do While Brr(n1, 1) = Brr(n + 1, 1)
  21.             n = n + 1
  22.             s = s + Brr(n, 3)
  23.             Brr(n, 1) = ""
  24.         Loop
  25.         s = s + Brr(n1, 3)
  26.         Brr(n1, 1) = Brr(n1, 1) & ":" & s
  27.         i = n
  28.         s = 0
  29.     Next i
  30.     If Brr(x, 1) <> Brr(x - 1, 1) Then Brr(x, 1) = Brr(x, 1) & ":" & Brr(x, 3)
  31.     ReDim Crr(1 To x, 1 To 6)
  32.     a = 0: b = 0: n2 = 0
  33.     For i = 1 To x
  34.         a = a + 1
  35.         Crr(a, b + 1) = Brr(i, 1): Crr(a, b + 2) = Brr(i, 2): Crr(a, b + 3) = Brr(i, 3)
  36.         If a Mod 55 = 0 Then
  37.             If b = 3 Then
  38.                 n2 = n2 + 1
  39.                 a = n2 * 55
  40.                 b = 0
  41.             Else
  42.                 a = n2 * 55
  43.                 b = 3
  44.             End If
  45.         End If
  46.     Next i
  47.     LastRow = 55 * (x \ 110) + x Mod 110
  48.     With Sheets("丝织警号")
  49.         .[a1].Resize(1, 6).Merge
  50.         .Range("a2:f9999").Clear
  51.         .[a2].Resize(1, 6) = Bt
  52.         .[a3].Resize(LastRow, 6) = Crr
  53.         With .[a1].Resize(LastRow + 2, 6)
  54.             .Borders.LineStyle = 1
  55.             With .Font
  56.                 .Size = 10
  57.                 .Name = "宋体"
  58.             End With
  59.             .HorizontalAlignment = xlCenter
  60.             .VerticalAlignment = xlCenter
  61.             .RowHeight = 14.5
  62.             m = .Address
  63.         End With
  64.         With .Rows(1)
  65.             .Font.Size = 12
  66.             .Font.Bold = True
  67.             .RowHeight = 40
  68.         End With
  69.         With .Rows(2)
  70.             .Font.Size = 12
  71.             .Font.Bold = True
  72.             .RowHeight = 22
  73.         End With
  74.           For i = 56 To LastRow Step 55  '分页设置 和 打印区域
  75.         '设置很耗时间演示中我就注释掉了
  76.            .Rows(i).PageBreak = 1
  77.          Next i
  78.           .PageSetup.PrintArea = m
  79.         .Columns.AutoFit
  80.     End With
  81.     Sheets("丝织警号").Activate
  82.     Set Dic = Nothing
  83.     Application.ScreenUpdating = True
  84. End Sub
复制代码

评分

2

查看全部评分

TA的精华主题

TA的得分主题

发表于 2018-9-20 22:25 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
①然如故 发表于 2018-9-20 22:23
不知道为什么您好,能不能不把代码转成图片,这样可直接复制工作簿中应用,谢谢!

要等会,代码发出来,系统审核中

11.jpg

评分

2

查看全部评分

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-20 22:41 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-9-21 09:00 | 显示全部楼层
不知道为什么 发表于 2018-9-20 22:25
要等会,代码发出来,系统审核中

您好,感谢您的帮助,效果基本很好,还有点小问题请您稍作修改,呈上图片。谢谢!
分页符及边框设置
0921.jpg

0921-2.jpg

9021-2.jpg

0921-4.jpg


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

本版积分规则

手机版|关于我们|联系我们|ExcelHome

GMT+8, 2025-1-15 21:37 , Processed in 0.027590 second(s), 10 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

沪公网安备 31011702000001号 沪ICP备11019229号-2

本论坛言论纯属发表者个人意见,任何违反国家相关法律的言论,本站将协助国家相关部门追究发言者责任!     本站特聘法律顾问:李志群律师

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