首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >替换最后一次出现的字符

替换最后一次出现的字符
EN

Stack Overflow用户
提问于 2016-09-08 22:25:40
回答 1查看 1.1K关注 0票数 0

我有一个电子表格,里面有很多文件的路径。我使用以下公式来替换列的每个单元格中最后一个出现的"\“。如何才能将其更改为宏,以便不必粘贴并向下拖动每一列。

代码语言:javascript
运行
复制
=SUBSTITUTE(K2,"\","?",LEN(K2)-LEN(SUBSTITUTE(K2,"\","")))

我试着录制一个宏,但只在一个单元格上有效,而且只有当活动单元格在O列中时才有效

代码语言:javascript
运行
复制
Sub Macro4()
ActiveCell.FormulaR1C1 = _
    "=SUBSTITUTE(RC[-4],""\"",""?"",LEN(RC[-4])-LEN(SUBSTITUTE(RC[-4],""\"","""")))"
Range("O2").Select
End Sub

我需要让它将每个非空K的值放在O列中,从O2开始,从K2开始,而不管活动单元格是什么。

EN

Stack Overflow用户

回答已采纳

发布于 2016-09-09 00:16:17

以下是另一种方法:

代码语言:javascript
运行
复制
Sub LastSlash()
    Dim N As Long, i As Long, rng As Range, r As Range
    Dim rc As Long, L As Long, j As Long

    rc = Rows.Count
    Set rng = Intersect(ActiveSheet.UsedRange, Range("K2:K" & rc))
    N = Cells(rc, "K").End(xlUp).Row

    For Each r In rng
        s = r.Value
        L = Len(s)
        If InStr(1, s, "\") > 0 Then
            For j = L To 1 Step -1
                If Mid(s, j, 1) = "\" Then
                    Mid(s, j, 1) = "?"
                    Exit For
                End If
            Next j
        End If
        r.Offset(0, 4).Value = s
    Next r
End Sub

票数 1
EN
查看全部 1 条回答
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39393547

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档