【问题标题】:Function to extract remaining string after last backslash在最后一个反斜杠之后提取剩余字符串的函数
【发布时间】:2016-03-18 05:50:43
【问题描述】:

我需要一个 Excel 函数,它可以从路径中提取最后一个 \ 之后的字符串,如果没有找到 \,则取出整个字符串。例如:

D:\testing\rbc.xls                     output will be   rbc.xls
D:\home\testing\test1\script1.sql      output will be   script.sql
script 3.txt                           output will be   script 3.txt

【问题讨论】:

  • 欢迎来到stackoverflow。请注意,这不是免费的代码编写服务。请分享您到目前为止尝试过的内容以及您遇到的问题。
  • 你看过函数InStrRev,它找到了主字符串中最后一次出现的子字符串。 Pos = InStrRev(PathFileName,"\") 给出最后一个“\”。 FileName = Mis$(PathFileName,Pos+1) 提取斜线后面的字符。
  • 我建议你仔细阅读 VBA 函数和方法的字母列表。在我早期的时候,我每个月左右都会这样做,直到遇到一个新问题时,我知道有一个函数可以满足我的需要,即使我不记得语法。
  • 我投票决定将此问题作为题外话结束,因为该站点不存在复制编程语言提供的文档。

标签: excel vba replace excel-formula find-replace


【解决方案1】:

1.将所有“\”改为空格,空格数由单元格中的字符数决定

2.使用right函数根据单元格中的字符数提取字符串的右边。

3.使用修剪功能去除空格。

你的结果会是。

=TRIM(RIGHT(SUBSTITUTE(A1,"\",REPT(" ",LEN(A1))),LEN(A1)))

正如所建议的,在没有公式或 vba 的情况下执行此操作的一种方法是使用“查找/替换”。 按 Ctrl 和“H”键并执行以下操作。

查找 *\ 并替换为空

VBA 代码是

Sub ReplaceIt()
    Columns("A").Replace What:="*\", Replacement:="", SearchOrder:=xlByColumns, MatchCase:=True
End Sub

【讨论】:

  • 添加了另外两种技术
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-10
  • 2021-12-07
  • 1970-01-01
  • 1970-01-01
  • 2015-07-29
相关资源
最近更新 更多