在单元格Excel中编辑文本

时间:2014-08-21 02:13:05

标签: excel vba excel-vba

我有Range("A1").Text

C:\Users\IBM_ADMIN\Desktop\Cooparative\SHC_Oracle_autoreport\Autoreport\ISEC Oracle platform\orcl-tbcldbprd1-IC4PRD1.info

我希望删除上一个\之前和.之后的所有文字,从而产生orcl-tbcldbprd1-IC4PRD1

我使用了"文本到列功能"并将宏保存为VBA代码。但是,如果我添加一个像这样的新路径

C:\Users\IBM_ADMIN\Desktop\orcl-tbcldbprd1-IC4PRD1.info

并使用Macro,它会失败,因为列不匹配。如何使其灵活,以便它适用于任何路径?

1 个答案:

答案 0 :(得分:0)

尝试此功能;

=LEFT(TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99)),FIND(".",TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99)))-1)

这里有魔力。

TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",99)),99))
  1. REPT("",99)表示创建了一个包含99个空格的字符串。
  2. SUBSTITUTE(A1," \",REPT("",99))表示替换每个" /"在99个空格的字符串中。所以现在你有一个长长的字符串,里面塞满了空格。
  3. RIGHT(...)表示先前创建的海量字符串的最后99个字符,它返回99个字符的字符串,方便的是在大量空格之前的完整文件名。
  4. TRIM(...)删除字符串中的所有空格,除了单词之间的单个空格(在本例中为none)。
  5. 剩余的字符串是完整的文件名。
  6. LEFT(...,FIND(...))删除文件后缀。