ExcelHome技术论坛

 找回密码
 免费注册

QQ登录

只需一步,快速开始

快捷登录

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

[已解决] [求助]高难度!提取名称、型号、单位问题[已完成]

[复制链接]

TA的精华主题

TA的得分主题

发表于 2007-8-25 16:57 | 显示全部楼层 |阅读模式

我想对如下材料进行:名称、型号、单位的分别提取,找了论坛未找到,特求助,范例如下:

总名——>名称,型号,单位
钢芯铝绞线LGJ-95米——>钢芯铝绞线,LGJ-95,米
UT线夹NUT-3套——>UT线夹,NUT-3,套
钢绞线GJ-50kg——>钢绞线,GJ-50,kg

其难点在于:名称、型号内夹杂有字母或数字,有全角字符(如西腊字母);单位为中文或英文,但名称末位是中文、型号首位是字母。
请教各位:如何做?

单位多了有:套、只、块、片、条、基、kg、m、付、根、组等等。

规律是:1、名称的最后一位是中文,但其首位不定;
2、型号的第一位是英文字母或希腊字母、型号的末位是数字
3、单位不定,
4、三者间无空格

sdbpC5FX.rar (2.27 KB, 下载次数: 5)
[此贴子已经被作者于2007-9-2 13:25:25编辑过]

TA的精华主题

TA的得分主题

发表于 2007-8-25 17:55 | 显示全部楼层

对于可能出现的其他全角字符请在黄色部分添加

Sub macro()
    Dim a As String, b
    For j = 2 To [a65536].End(xlUp).Row
        a = Trim(Cells(j, 1))
        b = Len(a)
        s = 0: e = 0
        For i = b To 1 Step -1
            c = Mid(a, i, 1)
            If VBA.IsNumeric(c) Then s = IIf(s = 0, i, s)
            If s > 0 And Asc(c) < 0 And VBA.InStr(1, "Ф×", c) = 0 Then
                e = i
                Exit For
            End If
        Next
        If s > 0 And e > 0 Then
            Cells(j, 2) = VBA.Left(a, e)
            Cells(j, 3) = VBA.Mid(a, e + 1, s - e)
            Cells(j, 4) = VBA.Mid(a, s + 1)
        End If
    Next
End Sub

TA的精华主题

TA的得分主题

发表于 2007-8-25 18:14 | 显示全部楼层

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-26 09:15 | 显示全部楼层
[广告] VBA代码宝 - VBA编程加强工具 · VBA代码随查随用  · 内置多项VBA编程加强工具       ★ 免费下载 ★      ★使用手册
谢谢taller,你果然是高人~

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-26 09:28 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
但为什么电杆这一行不对呢?

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-26 09:36 | 显示全部楼层
[广告] Excel易用宝 - 提升Excel的操作效率 · Excel / WPS表格插件       ★免费下载 ★       ★ 使用帮助
我找到问题了原来是电杆这一列的那个西腊字母写法不对!~再次谢谢taller

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-26 11:57 | 显示全部楼层

还是有一个问题,就是埋深这一栏。因为没有型号所以在后面就啥都没有了~

TA的精华主题

TA的得分主题

 楼主| 发表于 2007-8-26 12:24 | 显示全部楼层

在实际应用中我发现对这一行进行操作时有误:

绝缘子P-15M只:变成了:绝缘子,这P-15,M只。

脑袋都大了,烦请在有时间的时候帮我解决一下为谢~

TA的精华主题

TA的得分主题

发表于 2007-8-27 11:45 | 显示全部楼层
dZbM9V5U.rar (8.48 KB, 下载次数: 17)

TA的精华主题

TA的得分主题

发表于 2007-8-27 20:45 | 显示全部楼层
oobird版主的代码更简洁,学习
您需要登录后才可以回帖 登录 | 免费注册

本版积分规则

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

GMT+8, 2025-1-9 00:00 , Processed in 0.041097 second(s), 11 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 1999-2023 Wooffice Inc.

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

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

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