求excel的vba代码,截取所属文件名中的一截字符。 比如excel文件名是”314-56.五月

求excel的vba代码,截取所属文件名中的一截字符。比如excel文件名是”314-56.五月份交易记录.AsRuSc.已打印.xlsx,求三段vba代码。1:截取第一... 求excel的vba代码,截取所属文件名中的一截字符。
比如excel文件名是”314-56.五月份交易记录.AsRuSc.已打印.xlsx,求三段vba代码。1:截取第一个点号前的字符,即“314-56”。2:截取第一个横杠与第一个点号之间的字符,即“56”。3:截取第一个点号和第二个点号之间的字符,即“五月份交易记录”。
要vba代码,不要公式不要数据分列的办法。那些我都会。另外,是按符号截取,不是按字符数截取,因为每个文件名长度都不一样。
补充一下说明吧。

首先,我需要的是三段代码,分别用来做三个不同的宏。这个宏的用处就是,当我打开文件在某个单元格执行宏时,会按照我之前说的要求截取文件名中的一部分字符填入。比如我执行宏1,就在光标所在单元格填入“314-56”,如果执行宏2,则填入“56”
,执行宏3,则填入“五月份交易记录”。

其次,截取的是文件名的一部分。也就是说,我打开的是”314-56.五月份交易记录.AsRuSc.已打印.xlsx“这个文件的话,是截取这个的一部分比如”314-56“。但是如果我打开的是另一个文件”15-236.支出登记.AUp.已结算“,执行宏1则会在单元格中填入”15-236“。每个文件的文件名都不一样的,代码需要的是截取我当前打开的文件的文件名,而不是固定的某个文件名。
展开
 我来答
阳光上的桥
2015-10-30 · 知道合伙人软件行家
阳光上的桥
知道合伙人软件行家
采纳数:21424 获赞数:65796
网盘是个好东东,可以对话和传文件

向TA提问 私信TA
展开全部

程序代码如下:

Sub 宏1()
    Dim s, arr1, arr2
    s = ActiveSheet.Name
    s = "314-56.五月份交易记录.AsRuSc.已打印.xlsx"
    arr1 = Split(s, ".")
    arr2 = Split(arr1(0), "-")
    MsgBox "你需要的三个部分是:" & Chr(10) & arr1(0) & Chr(10) & arr2(1) & Chr(10) & arr1(1)
End Sub

 

更多追问追答
追问
不,我不是这个意思,我是说要三段代码,每段做一个宏,执行后,单元格内会填充我需要的那一段
另外,截取的是文件名。也就是说我换另一个文件,比如说“128-12.八月开支.xlsx”,那么截取的是128-12,12,和八月开支。
nunien
2015-10-30 · TA获得超过1520个赞
知道小有建树答主
回答量:1687
采纳率:0%
帮助的人:1327万
展开全部
Sub mysub()
    Dim mystr
    mystr = "314-56.五月份交易记录.AsRuSc.已打印.xlsx"
    mystr = Split(mystr, ".")
    Debug.Print "第一个点号前的字符:"; mystr(0)
    Debug.Print "第一个横杠与第一个点号之间的字符:"; Split(mystr(0), "-")(1)
    Debug.Print "第一个点号和第二个点号之间的字符:"; mystr(1)
End Sub
更多追问追答
追问
怎么用啊?没懂。我需要三个宏,分别执行后单元格内会截取文件的字符。你这个怎么用?
追答

你利用以上代码做三个函数就可以了啊,要活学活用吗,按Alt+F11打开VBA,插入模块,在模块中贴入以下代码:

Function GetStr1(str As String) As String
    Dim mystr
    mystr = str
    mystr = Split(mystr, ".")
    GetStr1 = mystr(0)
End Function
Function GetStr2(str As String) As String
    Dim mystr
    mystr = str
    mystr = Split(mystr, ".")
    GetStr2 = Split(mystr(0), "-")(1)
End Function
Function GetStr3(str As String) As String
    Dim mystr
    mystr = str
    mystr = Split(mystr, ".")
    GetStr3 = mystr(1)
End Function

关闭VBA窗口,在Excel文件中利用以上三个函数即可,如下图所示:

本回答被网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式