1234

ExcelHome技术论坛

用户名  找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] 我想把图一 单元格内数据 以"/"自动向下分列换行 达到图二效果。

[复制链接]

TA的精华主题

TA的得分主题

发表于 2017-8-16 15:03 来自手机 | 显示全部楼层
llh521 发表于 2017-8-16 14:32
数据默认前面有俩空格   自动点 宏的话 前面 俩空格需要  手动去除  这个 能帮我 修改下吗 ?  谢谢

Option Explicit
Sub test()
Dim m&, n&, k&
Dim arr, brr, crr()
arr = Range([h3], Range("j" & Range("h1048576").End(xlUp).Row))
For m = LBound(arr, 1) To UBound(arr, 1)
brr = Split(arr(m, 3), " / ")
For n = LBound(brr) To UBound(brr)
k = k + 1
ReDim Preserve crr(1 To 3, 1 To k)
crr(1, k) = arr(m, 1)
crr(2, k) = arr(m, 2)
If n = 0 Then
   crr(3, k) = Replace(brr(n), " ", "")
Else
  crr(3, k) = brr(n)
End If
Next
Range("A3").Resize(k, 3) = WorksheetFunction.Transpose(crr) Next
End Sub

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-16 15:24 | 显示全部楼层
jiaxinl 发表于 2017-8-16 15:03
Option Explicit
Sub test()
Dim m&, n&, k&

修改了以后 前面俩空格是 没了 可是  每个单元个第一个数据里的 空格也跟着被取消了。  我给你 发图。黄色标记了。

问题

问题

TA的精华主题

TA的得分主题

发表于 2017-8-16 16:34 来自手机 | 显示全部楼层
llh521 发表于 2017-8-16 15:24
修改了以后 前面俩空格是 没了 可是  每个单元个第一个数据里的 空格也跟着被取消了。  我给你 发图。黄 ...

If n = 0 Then
   crr(3, k) = Replace(brr(n), " ", "")
Else
  crr(3, k) = brr(n)
End If

改为

If n = 0 Then
   crr(3, k) = Replace(brr(n), Left(brr(n),2), "")
Else
  crr(3, k) = brr(n)
End If

TA的精华主题

TA的得分主题

 楼主| 发表于 2017-8-16 17:14 | 显示全部楼层
jiaxinl 发表于 2017-8-16 16:34
If n = 0 Then
   crr(3, k) = Replace(brr(n), " ", "")
Else

非常非常感谢      再次表示感谢

TA的精华主题

TA的得分主题

发表于 2017-8-16 20:59 | 显示全部楼层
数量不多,可以用转置:
Sub 按钮1_Click()
Dim a, b(), c(), u&, v&
a = Range("H3:J" & [j65536].End(3).Row)
v = 1: u = 0
For i = 1 To UBound(a)
u = u + UBound(Split(a(i, 3), "/")) + 1
ReDim Preserve b(1 To u): ReDim Preserve c(1 To u)
  For j = 0 To UBound(Split(a(i, 3), "/"))
  b(v) = a(i, 1)
  c(v) = Split(a(i, 3), "/")(j)
  v = v + 1
  Next j
Next i
[a25].Resize(UBound(b)) = Application.Transpose(b)
[c25].Resize(UBound(c)) = Application.Transpose(c)
End Sub

2017-8-16.rar

18.21 KB, 下载次数: 4

TA的精华主题

TA的得分主题

发表于 2017-8-16 21:17 | 显示全部楼层

TA的精华主题

TA的得分主题

发表于 2017-8-17 11:43 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
cbtaja 发表于 2017-8-16 14:04
对代码按符号"/"分列,然后用数据透视表得到结果。

你好,请问是怎么做到的(步骤)谢谢!

TA的精华主题

TA的得分主题

发表于 2017-8-17 17:32 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
llh521 发表于 2017-8-16 17:14
非常非常感谢      再次表示感谢


用Ltrim函数最简单,它仅剪除字符串的左端开始的连续空格。

处理空格的VB函数还有:
Rtrim:剪除字符串的右端开始的连续空格、
Trim:不仅包含Ltrim、Rtrim的作用,而且把字符串中间的连续空格修剪为1个空格

TA的精华主题

TA的得分主题

 楼主| 发表于 2018-6-19 11:39 | 显示全部楼层
jiaxinl 发表于 2017-8-16 16:34
If n = 0 Then
   crr(3, k) = Replace(brr(n), " ", "")
Else

你好 大神,我想把您给我写的代码,在进阶修改下。是否能帮修改下呢。

TA的精华主题

TA的得分主题

发表于 2018-6-19 13:37 来自手机 | 显示全部楼层
llh521 发表于 2018-6-19 11:39
你好 大神,我想把您给我写的代码,在进阶修改下。是否能帮修改下呢。

具体是要怎么修改呢?有新附件吗
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

1234

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

GMT+8, 2025-4-6 14:08 , Processed in 0.032791 second(s), 9 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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