网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
09月17日漏签0天
excel吧 关注:281,611贴子:1,552,360
  • 看贴

  • 图片

  • 吧主推荐

  • 视频

  • 游戏

  • 29回复贴,共1页
<<返回excel吧
>0< 加载中...

这个能不能用公式做到

  • 只看楼主
  • 收藏

  • 回复
  • VBA菜鸟
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

在B列将A列按顺序排列下来,一个单元格有多条的按顺序排列


  • 硫酸下
  • E夫当关
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
最简单的思路textjoin函数合并再分列即可。如果数据太多太长不一定合适。


2025-09-17 02:58:23
广告
不感兴趣
开通SVIP免广告
  • ssg365
  • E夫当关
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
PQ中拆分为行,再排序。


  • 夜辰无星
  • E通百通
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
内容重排轻松搞定


  • VBA菜鸟
  • E览无余
    11
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
代码效果

代码:
Sub 单元格拆分()
Dim arr1
Dim x As Integer
With ActiveSheet
For x = .Cells(Rows.Count, 1).End(xlUp).Row To 1 Step -1
If .Cells(x, 1) <> "" Then
arr1 = Split(.Range("a" & x), ",")
If UBound(arr1) >= 1 Then
Rows(x + 1 & ":" & UBound(arr1) + x).Insert Shift:=xlDown '根据拆分出来的数量插入空行
.Range("b" & x).Resize(UBound(arr1) + 1, 1) = Application.Transpose(arr1)
Else
.Range("b" & x) = arr1
End If
End If
Next
End With
End Sub


  • 硫酸下
  • E夫当关
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
合并字符串的长度有上限吧?以前用公式时候遇到过太长的合并出错。最好还是不要直接写入单元格,写个数组循环的。
Sub 拆()
arr = Range([A1], [A59999].End(xlUp))
Dim crr(1 To 65536, 1 To 1)
For i = 1 To UBound(arr, 1)
For Each j In Split(arr(i, 1), ",")
if j<>"" then k = k + 1:crr(k, 1) = j
Next
Next
[B1:B65536] = crr
End Sub


  • 夜辰无星
  • E通百通
    12
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
我也来个
Sub i()
Dim i, ar, br
ar = Range("a1", Cells(Rows.Count, 1).End(3))
s = Join(Application.Transpose(ar), ",")
br = Split(s, ",")
[b1].Resize(UBound(br, 1), 1) = Application.Transpose(br)
End Sub


  • avijwxfj
  • 情投E合
    3
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
@硫酸下 :这个应该没问题吧
Set a = CreateObject("vbscript.RegExp")
a.Global = True
a.Pattern = "\d+"
Set d = CreateObject("scripting.Dictionary")
For Each b In Range("a1:a" & [a1].End(xlDown).Row)
For Each c In a.Execute(b)
d(c) = ""
Next c
Next b
[b1].Resize(d.Count) = Application.Transpose(d.Keys)


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 29回复贴,共1页
<<返回excel吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示