程序代码如下:
12345678Sub 宏1来自() Dim s, arr1, arr2 s = ***.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)En题图d Sub
追问 : 不,我不是这个意思,我是说要三段代码,每段做一个宏,执行后,单元格内会填充我需要的那一段
追答 : 唉,例如我写下面这么一个语句:
MsgBox ***.Name
你把它弄到宏里面会吗,就是在前面添加一个SUB,后面写一个END SUB,也就是这样:
SUB 宏123()
MsgBox ***.Name
END SUB
现在可以执行上面的宏了吧,这个宏执行后的效果看见了么:就是把当前文件的名字显示出来。
再慢一点,文件名字都显示出来了,要分成几段填写在单元格里面,是不是很容易了。
追问 : 另外,截取的是文件名。也就是说我换另一个文件,比如说“128-12.八月开支.xlsx”,那么截取的是128-12,12,和八月开支。
追答 : 填在哪个单元格???下面的代码填在A1、A2、A3,你自己根据需要修改吧,这个应该不难:123456789Sub 宏1() Dim s, arr1, arr2 s = ***.Name arr1 = Split(s, ".") arr2 = Split(arr1(0), "-") [a1]=arr1(0) [a2]=arr2(1) [a3]=arr1(1)End Sub如果你觉得一个宏填三个地方不满意,希望弄三个宏,你就把上面的代码复制三份吧,注意修改两个地方:一是宏名不能相同,复制成三份需要使用宏1、宏2、宏3;二是最后[A1]、[A2]、[A3]的三句,每个宏就只保留自己的那一句。
追问 : 我不会写代码的,你能否直接做好代码给我。之前你那个代码我运行过了,首先他是像你图片中一样是出来一个框显示三段字符的。而我需要的是三个宏,执行其中一个就会在光标所在单元格填入我需要的字符段。三个宏分别截取文件名不同部分。其次,你之前那个宏我执行时,截取的不是文件名,而是我举例的那段固定的文字。而我需要这个宏在不同文件名的文件内也能使用。比如文件名是“12-1.六月.xlsx”,就截取12-1等等
追问 : 光标所在的单元格
追问 : 我试过了,上面那个代码ok的。然后如果把单元格[a1] [a2] [a3]那里改成ActiveCell,就可以在光标所在单元格进行填充了。谢谢了!要的就是这个代码!