共享两段excel vba 分列代码实现不规则数据源的分列

时间:2023-11-09 00:17:39 

excel vba 分列多用于一般常规的分列操作完成不了的情况。

Excel内置的分列,仅用于有规律的数据进行分列。比如下面的截图,这样的数据源,分列就可以考虑使用excel vba 分列完成。

共享两段excel vba 分列代码实现不规则数据源的分列

A列数据源,要将汉字和数字分列后的效果如B:D列。

下面是两段excel vba 分列的代码,案例和答案来自论坛版主。

第一段excel vba 分列的代码:

Sub vba分列()
    Dim oJs As Object, rng As Range
    Set oJs = CreateObject("ScriptControl"): oJs.Language = "JScript"
    oJs.eval "function gets(str){return str.replace(/(d+)/,' $1 ')}"
    For Each rng In Range("A2", [A65536].End(3))
        rng(1, 2).Resize(1, 3) = Split(oJs.codeobject.gets(rng.Value), " ")
    Next
End Sub


第二段excel vba 分列的代码:

Sub vba分列()
    Dim arr, i%, brr(), sma As Object
    arr = Range("a2:a" & Cells(Rows.Count, 1).End(3).Row)
    ReDim brr(1 To UBound(arr), 1 To 3)
    With CreateObject("vbscript.regexp")
        .Global = True
        .Pattern = "([^d]+)(d+)(.+)"
        For i = 1 To UBound(arr)
            Set sma = .Execute(arr(i, 1))(0).submatches
            brr(i, 1) = sma(0)
            brr(i, 2) = sma(1)
            brr(i, 3) = sma(2)
        Next
    End With
    Range("b2", Cells(Rows.Count, Columns.Count)).ClearComments
    Range("b2").Resize(UBound(brr), UBound(brr, 2)).NumberFormat = "@"
    Range("b2").Resize(UBound(brr), UBound(brr, 2)) = brr
    Set sma = Nothing
End Sub

代码使用方法,在excel中,按下ALT+F11,打开VBE编辑器,单击插入——模块,复制上面任意一段代码,按F5键运行即可完成分列。

标签:excel不规则数据源的分列
0
投稿

猜你喜欢

  • Win10如何隐藏任务栏?Win10隐藏任务栏的方法

    2023-12-14 02:48:29
  • 升级 iOS 16.1 后,如何设置或加入 iCloud 共享照片图库?

    2023-06-12 06:29:32
  • 怎么识别电脑中的歌曲?QQ音乐听歌识曲怎么用?

    2023-02-01 04:33:59
  • Win7本地连接在哪?Win7本地连接的使用方法

    2022-10-24 14:04:06
  • KB4535996补丁更新后无法开机、蓝屏问题 win10安装失败解决方法

    2023-02-16 06:53:37
  • 系统自带的截图软件失效了怎么办?

    2023-04-17 18:56:31
  • Win11怎么删除账户?Win11删除账户的方法

    2023-05-16 21:18:38
  • WPS文字怎么一行写出多行字

    2022-11-11 01:48:49
  • Windows10 TH2系统标题栏颜色怎么更改 win10系统标题栏修改成彩色步骤

    2022-08-03 03:27:40
  • 谷歌浏览器怎么登录账号?谷歌浏览器登录账号的方法

    2023-12-20 01:13:11
  • 鼠标单击变成双击怎么办-鼠标单击变成双击解决方法

    2022-04-13 09:13:20
  • Win11红警运行出现FATAL的原因分析及解决方法

    2022-03-05 09:10:10
  • Win10再遇尴尬:Cortana进程CPU占用率高达40%

    2022-04-10 15:10:16
  • PowerPoint中控件的应用技巧

    2022-03-28 15:33:50
  • Win10用文件夹右键属性后消失怎么办?

    2022-03-20 20:33:47
  • word如何设置斜线表头

    2022-09-29 01:27:18
  • Excel表格输入大量数字或身份证号码显示异常解决方法

    2023-11-14 10:52:59
  • WPS如何制作双坐标图表 WPS制作双坐标图表方法

    2023-03-14 02:51:30
  • QuickTime Player如何实现手机屏幕投影和录制?

    2023-02-04 03:17:11
  • PPt2010怎么构筑绚丽的3D图形

    2023-07-02 18:22:38
  • asp之家 电脑教程 m.aspxhome.com