楼主: 江夏雁
2134 9

[问答] 抽出某一字前面的数字 [推广有奖]

  • 20关注
  • 2粉丝

朋友

教授

57%

还不是VIP/贵宾

-

威望
0
论坛币
565 个
通用积分
5.4453
学术水平
8 点
热心指数
9 点
信用等级
-4 点
经验
40942 点
帖子
843
精华
0
在线时间
613 小时
注册时间
2010-6-24
最后登录
2025-2-26

楼主
江夏雁 在职认证  发表于 2015-3-19 22:41:34 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币
如果想把数据从左开始向右找,找到“支”这个字,就把“支”字之前的数据抽出单列一列,怎么办?



比如
雪茄烟|烟草制|高希霸牌|1X25支 5盒

想抽出“25”这个数字
多谢!


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:怎么办 雪茄烟 雪茄烟

回帖推荐

pingguagain 发表于2楼  查看完整内容

Using the following VBA code will fulfill your requirement. Sub InsertCol() Dim iRowCount As Integer Dim iColCount As Integer Dim i As Integer Dim j As Integer Dim iPosStr As Integer Dim iPosTimes As Integer Dim NumStr As String Dim myRng As Range iRowCount = ThisWorkbook.Sheets("Sheet1").UsedRange.Rows.Count iColCount = ThisWorkbook.Sheets("Sheet1").UsedRange.Columns.Count F ...

本帖被以下文库推荐

若无人伴你 愿你成你自己的太阳

沙发
pingguagain 发表于 2015-3-19 23:38:18
Using the following VBA code will fulfill your requirement.

Sub InsertCol()

Dim iRowCount As Integer
Dim iColCount As Integer
Dim i As Integer
Dim j As Integer
Dim iPosStr As Integer
Dim iPosTimes As Integer
Dim NumStr As String
Dim myRng As Range


iRowCount = ThisWorkbook.Sheets("Sheet1").UsedRange.Rows.Count
iColCount = ThisWorkbook.Sheets("Sheet1").UsedRange.Columns.Count

For i = 1 To iRowCount
    For j = 1 To iColCount
        iPosStr = InStr(ThisWorkbook.Sheets("Sheet1").Cells(i, j), "Ö§")
        
        If iPosStr > 1 Then
            iPosTimes = InStr(ThisWorkbook.Sheets("Sheet1").Cells(i, j), "X")
            NumStr = Mid(ThisWorkbook.Sheets("Sheet1").Cells(i, j), iPosTimes + 1, iPosStr - iPosTimes - 1)
            'MsgBox NumStr
            Set myRng = ThisWorkbook.Sheets("sheet1").Range(Cells(i, j), Cells(i, iColCount))
            myRng.Insert Shift:=xlToRight
            ThisWorkbook.Sheets("Sheet1").Cells(i, j) = NumStr
        End If
    Next j
Next i

End Sub
已有 1 人评分论坛币 热心指数 收起 理由
客初 + 20 + 3 热心帮助其他会员

总评分: 论坛币 + 20  热心指数 + 3   查看全部评分

藤椅
江夏雁 在职认证  发表于 2015-3-20 09:52:16
要把哪个字改成“支”这个字吗?多谢!

03202.PNG (6.52 KB)

03202.PNG

03201.PNG (13.66 KB)

03201.PNG

若无人伴你 愿你成你自己的太阳

板凳
pingguagain 发表于 2015-3-20 21:46:59
江夏雁 发表于 2015-3-20 09:52
要把哪个字改成“支”这个字吗?多谢!
Correct

报纸
maxthing 发表于 2015-3-21 07:12:21 来自手机
我的天啊

地板
nankaizx 发表于 2015-3-24 21:54:39
=LOOKUP(9^9,--RIGHT(LEFT(A1,FIND("支",A1)-1),ROW($1:$99)))

7
heiloon 发表于 2015-5-22 22:20:17
在“支”处分裂就可以了

8
clivesun123 发表于 2016-9-5 16:00:12
假设文本在A1单元格
可以用  FIND("支",A1,1) 和 FIND("X",A1,1)找到支和X的位置
再用MID函数提取就可以了

9
bajifeng 发表于 2016-9-6 15:58:03
  1. Sub ccc()
  2. Set re = CreateObject("VBScript.RegExp")
  3. re.Pattern = "[^\d]\d+(?=支)"
  4. For Each c In [a1:a100] '假设数据在A1:A100单元格内
  5.     If re.Test(c) Then c.Offset(, 1) = Mid(re.Execute(c)(0), 2)
  6. Next
  7. End Sub
复制代码

10
bajifeng 发表于 2016-9-6 16:08:47
>>>>>>>>>>>>>>>>>>>>

参见附件 SHEET 3

拆分数字-bajifeng.rar
下载链接: https://bbs.pinggu.org/a-2097295.html

233.93 KB

本附件包括:

  • 拆分数字-bajifeng.xlsm

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

本版微信群
加好友,备注cda
拉您进交流群
GMT+8, 2026-1-9 12:28