Excel使用变量查找和替换

时间:2012-08-03 19:36:41

标签: excel vba excel-vba excel-vba-mac

我想知道是否有办法以这种方式查找和替换:

我需要找到包含apt后跟一个数字的所有单元格。但这个数字总是不同的。那么有一个脚本或其他东西会这样做吗?

查找:apt XX (the 2 Xs representing the numbers)

REPLACE BY:app 30

所以它会找到apt + a number

所有的地方

因为我有数千行,我不想这样做:

FIND:apt 01 ...

FIND:apt 02 ...

FIND:apt 03 ...

等等

谢谢!

3 个答案:

答案 0 :(得分:2)

以下是您要找的内容:

Sub findApt()
    Dim count As Integer
    count = Application.WorksheetFunction.CountA(Range("B:B"))
    Dim i As Integer
    i = 1
    Do While i <= count
        If (InStr(Range("B" & i), "apt")) Then
            Range("B" & i) = Mid(Range("B" & i), 1, Application.WorksheetFunction.Search("apt", Range("B" & i)) - 1) & "app 30"
        End If
        i = i + 1
    Loop
End Sub

这假设您的数据在B列中。享受!

答案 1 :(得分:1)

RegEx确实很有用,但我相信内置的“正则表达式”已经足够了。从帮助文件:

  

使用星号查找任何字符串。例如,s * d找到“sad”和“started”。

     

使用问号查找任何单个字符。例如,s?t找到“sat”和“set”。

因此,在您的情况下,只需按Ctrl + H即可获取“搜索和替换”对话框,然后将apt *写入搜索框,并将app 30写入替换框。

PS:从你的问题中不清楚是否有一些单元格包含apt后面跟不是数字的东西,应该保留。如果是这种情况,请使用RegEx,如Emmanuel建议或在VBA中使用Scripting.Regex

答案 2 :(得分:0)

我建议您安装查找和替换Excel Regex。允许您使用正则表达式查找和替换。