Excel精英培训网

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

[已解决]VBA right left 的用法。请教下

[复制链接]
发表于 2014-9-13 12:48 | 显示全部楼层 |阅读模式
例子1 : M11A03B_11M_YY_SS_1222225_96
例子2 :M11A03B_11M_YY_SS_1222225_966_55
例子2 :M11A03B_11M_YY_SS_1222225_966_55_1
例子1可以用下面方法得了红急部分的内容,但是当出来例子2这种或者是例子3的时候这种写法就不行了,那位大哥能帮忙有更好的方法吗?谢谢!

Sub aa()
Dim A, B, C As String
A = ActiveWorkbook.Name
B = VBA.Right(A, 16)
C = VBA.Left(B, 8)
MsgBox C
End Sub



最佳答案
2014-9-13 13:53
  1. Sub test()
  2. a = " M11A03B_11M_YY_SS_1222225_96"
  3. MsgBox Split(a, "_")(4)
  4. End Sub
复制代码
excel精英培训的微信平台,每天都会发送excel学习教程和资料。扫一扫明天就可以收到新教程
发表于 2014-9-13 13:26 | 显示全部楼层
回复

使用道具 举报

发表于 2014-9-13 13:53 | 显示全部楼层    本楼为最佳答案   
  1. Sub test()
  2. a = " M11A03B_11M_YY_SS_1222225_96"
  3. MsgBox Split(a, "_")(4)
  4. End Sub
复制代码
回复

使用道具 举报

发表于 2014-9-13 13:53 | 显示全部楼层
Sub aa()
Dim A, B, C As String
A = ActiveWorkbook.Name
B = VBA.Mid(A, 19, 7)
MsgBox B
End Sub
回复

使用道具 举报

发表于 2014-9-13 14:46 | 显示全部楼层
如果M11A03B_11M_YY_SS_长度一样 ,1222225的长度一样,用4楼的就行了
如果不一样,且 _ 的个数一样,就用3楼的
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-6 05:21 , Processed in 0.303566 second(s), 12 queries , Gzip On, Yac On.

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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