Excel精英培训网

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

VBA中提取字符串中的数值问题

[复制链接]
发表于 2020-8-18 07:19 | 显示全部楼层 |阅读模式
1学分


Sub z3() '提取一个字符串中的数值无法实现excle表公式的结果
Dim sr, sr1
sr = Range("a1")  ' a1的值是 "墙面抹灰面积4.8928"
sr1 = MidB(sr, Application.SearchB("?", sr), Len(sr) * 2 - LenB(sr)) '按道理这里应该出来的是4.8928,但现在出来的是空值
Range("c1") = sr1
End Sub


'问题:
'Len(sr) '字符数是12
'LenB(sr) '字节数正确应该是18但是这里出来结果显示是24,我在excle表中使用len,lenb公式出来的结果都没错。是不是我的语法有什么用得不对的地方。


最佳答案

查看完整内容

把下面这行改下就行了: sr1 = MidB(sr, Application.SearchB("?", sr), Len(sr) * 2 - LenB(sr)) 改成: sr1 = MidB(sr, Application.SearchB("?", sr), 100)
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2020-8-18 07:19 | 显示全部楼层
把下面这行改下就行了:
sr1 = MidB(sr, Application.SearchB("?", sr), Len(sr) * 2 - LenB(sr))
改成:
sr1 = MidB(sr, Application.SearchB("?", sr), 100)
回复

使用道具 举报

发表于 2020-8-18 11:04 | 显示全部楼层
回复

使用道具 举报

发表于 2020-8-18 11:14 | 显示全部楼层
在vba中不能调用工作表函数LenB
回复

使用道具 举报

发表于 2020-8-18 12:39 | 显示全部楼层
本帖最后由 砂海 于 2020-8-18 16:05 编辑

1)各种提取: 王道 是 正则表达式

2) like +循环
Sub z3() '提取一个字符串中的数值无法实现excle表公式的结果
    Dim sr, sr1, sr2, i

    sr = "墙面抹灰面积4.8928"

    For i = Len(sr) To 1 Step -1
   
        sr1 = Mid(sr, i, 1)

        Debug.Print sr1; ; LenB(sr1); ; Len(sr1); ; sr1 Like "[.0-9]"
    Next i

End Sub

3) 直接用函数
C1=LOOKUP(9E+307,--(RIGHT(A1,ROW(1:99))))
========================================= bc.jpg


回复

使用道具 举报

 楼主| 发表于 2020-8-18 19:36 | 显示全部楼层
砂海 发表于 2020-8-18 12:39
1)各种提取: 王道 是 正则表达式

2) like +循环

原来是这样,受教了,非常感谢!!!
回复

使用道具 举报

 楼主| 发表于 2020-8-18 20:01 | 显示全部楼层
pjiang 发表于 2020-8-18 11:14
在vba中不能调用工作表函数LenB

谢谢你!!!现在知道了
回复

使用道具 举报

 楼主| 发表于 2020-8-21 07:37 | 显示全部楼层
hfwufanhf2006 发表于 2020-8-18 21:36
把下面这行改下就行了:
sr1 = MidB(sr, Application.SearchB("?", sr), Len(sr) * 2 - LenB(sr))
改成 ...

非常佩服,解决问题了,简单直接,给足够的字节就可以了。实际上不用100,设置50就可以够了。真的非常感谢!以后多请教
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-27 11:19 , Processed in 0.565049 second(s), 10 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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