求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“。每个文件的文件名都不一样的,代码需要的是截取我当前打开的文件的文件名,而不是固定的某个文件名。 展开
比如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“。每个文件的文件名都不一样的,代码需要的是截取我当前打开的文件的文件名,而不是固定的某个文件名。 展开
2个回答
展开全部
更多追问追答
追问
不,我不是这个意思,我是说要三段代码,每段做一个宏,执行后,单元格内会填充我需要的那一段
另外,截取的是文件名。也就是说我换另一个文件,比如说“128-12.八月开支.xlsx”,那么截取的是128-12,12,和八月开支。
展开全部
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文件中利用以上三个函数即可,如下图所示:
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询