ms excel 查找并替换@符号导致公式损坏

ms excel 查找并替换@符号导致公式损坏

我正在尝试在 Excel 中搜索和替换,该列的格式为“文本”。

寻找: [@

用。。。来代替: @

每当在单元格开头找到匹配项(即单元格内容以 [@ 开头并尝试将其替换为 @ 时),结果将出现错误“该函数无效”

我猜想由于 @ 运算符用于引用,这会导致单元格被以不同的方式解释(不再是文本)

我怎样才能使这个替换工作正常?

复制/粘贴到另一个程序中不是一个好选择,因为其中的一些单元格包含换行符。

答案1

令我惊讶的是,Excel 知道至少 4 种不同的方法来替换子字符串。

@所有这些方法都可以按照您想要的方式处理行距。除了您在打开搜索和替换对话。

@文本占位符。。如果您在单元格中输入数值123并将自定义格式设置为@,则该单元格将被格式化为文本(对齐方式:右»左)。


这些示例都将用替换b单元格 A1' 中的值。结果始终为。abc123a123c

1. 范围.替换()CTRL(与+H对话框相同)

    [A1].Replace "b", "123", xlPart

句法: Range.Replace( What, Replacement, [LookAt], [SearchOrder], [MatchCase], [SearchFormat], [ReplaceFormat] )

2. 工作表函数.Replace()

    [A1] = WorksheetFunction.Replace([A1], InStr([A1], "b"), Len("b"), "123")

句法: WorksheetFunction.Replace( old_text, start, number_of_chars, new_text )

3. 工作表函数.Substitute()

    [A1] = WorksheetFunction.Substitute([A1], "b", "123")

句法: WorksheetFunction.Substitute( text, old_text, new_text, [nth_appearance] )

4. Replace()

    [A1] = Replace([A1], "b", "123")

句法: Replace( Expression, Find, Replace, [Start, [Count, [Compare]]] )


回答 Loopo 的问题。您应该使用最后一种方法,因为它可以处理@单元格值的开头。我使用 2 个输入框让它更方便一些。

Sub ReplaceFunction()
    strFind = InputBox("Find what")
    strReplace = InputBox("Replace with")

    For Each cell In Selection
        cell.Value = Replace(cell.Value, strFind, strReplace)
    Next
End Sub

在此处输入图片描述

相关内容