Excel精英培训网

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

VB中做一个模板

[复制链接]
发表于 2023-4-15 21:23 | 显示全部楼层 |阅读模式
模板里:有两个工作表,一个是数据表,另外一个是效果我用分列,转置,再用函数,有点麻烦。我想试试另外一种VB模式,水平有限



模板.zip

27.63 KB, 下载次数: 2

发表于 2023-4-15 23:13 | 显示全部楼层
Sub 拆分Sp()
    Dim regEx As Object, match As Object
    Dim S值 As String, strInput As String, i As Integer, 效果表row As Long, j累 As Integer, 数据表row As Long
   
    S值 = "(\w+)\((\d+)\)|(\w+)"
    Set regEx = CreateObject("VBScript.RegExp")
    Set 数据表 = Sheets("数据表")
    Set 效果表 = Sheets("效果")
    效果表row = 效果表.Cells(Rows.Count, 1).End(xlUp).Row + 1
    数据表row = 效果表.Cells(Rows.Count, 1).End(xlUp).Row + 1
    效果表.Range("A2:B" & 效果表row).ClearContents
   
    '循环处理数据表
    For i = 2 To 数据表row
           j累 = 效果表.Cells(Rows.Count, 1).End(xlUp).Row + 1
        strInput = Sheets("数据表").Range("A" & i).Value
        With regEx
            .Global = True
            .MultiLine = True
            .IgnoreCase = False
            .Pattern = S值
        End With
     
        '循环处理匹配结果
        For Each match In regEx.Execute(strInput)
            效果表.Range("A" & j累).Value = match.SubMatches(0)
            效果表.Range("B" & j累).Value = match.SubMatches(1)
            j累 = j累 + 1
        Next match
    Next i
    Set regEx = Nothing
    Set 数据表 = Nothing
    Set 效果表 = Nothing
   
End Sub
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-3 03:43 , Processed in 0.196491 second(s), 11 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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