excel - 在公式单元格上使用 Range.Replace

标签 excel vba

我有一个简短的值列表,从 A1A10:

enter image description here

A4 包含字符串 abA5 包含公式:

="a" & "b"

如果我运行:

Sub Test1()
    Dim r As Range

    Set r = Range("A1:A10")
    r.Replace What:="ab", Replacement:="x"
End Sub

仅修改A4

如何让替换方法适用于这两种情况?

编辑#1:

我总是可以使用循环来逐项检查/替换,但 .Replace 速度要快得多。我想我可以构建并使用一个临时的自动过滤器,但这似乎很极端。

最佳答案

这就是我创建的:

Option Explicit

Sub TestMe()

    Dim myCell As Range
    Dim myText As String

    For Each myCell In Worksheets(1).Range("A1:A10")
        If InStr(myCell.Text, "ab") > 0 Then
            myText = myCell.Text
            myCell = Replace(myText, "ab", "x")
            myCell.Value = myText
        End If
    Next myCell

End Sub

关于excel - 在公式单元格上使用 Range.Replace,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38053120/

相关文章:

excel - XL 宏可以选择具有可变起始行和结束行的范围吗?

VBA:激活/选择工作表/行/单元格

Excel VBA秒表: add pause button?

vba - VB - 等待对象创建

vb.net - 在没有实际 Excel 的情况下使用 Microsoft.Office.Interop.Excel?

vba - 在后台运行宏

python-3.x - 如何从 CSV 文件将数据插入 Influxdb

excel - Smartart 层级节点 - 每个节点只能填充一个文本框

vba - 覆盖数据透视表中的双击操作以转到筛选的源数据

excel - 如何在excel vba中将输入框居中