Excel使用变量查找和替换

Excel使用变量查找和替换,excel,vba,macos,Excel,Vba,Macos,我想知道是否有一种方法可以通过这种方式找到并替换: 我需要找到所有包含apt后跟数字的单元格。但数字总是不同的。那么,有没有一个脚本或其他东西可以做到这一点 查找:apt XX(表示数字的两个X) 替换为:app 30 因此,它将定位apt+a数字 因为我有几千行,我不想做: 查找:apt 01 查找:apt 02 查找:apt 03 等等 谢谢大家! 我建议您安装“查找并替换”。允许您使用正则表达式查找和替换。我建议您安装查找和替换。允许您使用正则表达式查找和替换。以下是您要查找的内容: Su

我想知道是否有一种方法可以通过这种方式找到并替换:

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

查找:
apt XX
(表示数字的两个X)

替换为:
app 30

因此,它将定位
apt+a数字

因为我有几千行,我不想做:

查找:apt 01

查找:apt 02

查找:apt 03

等等


谢谢大家!

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

我建议您安装查找和替换。允许您使用正则表达式查找和替换。以下是您要查找的内容:

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
Sub findApt()
将计数设置为整数
count=Application.WorksheetFunction.CountA(范围(“B:B”))
作为整数的Dim i
i=1

趁我不在的时候去做这是你要找的:

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
Sub findApt()
将计数设置为整数
count=Application.WorksheetFunction.CountA(范围(“B:B”))
作为整数的Dim i
i=1

Do While iRegEx确实很有用,但我相信内置的“RegEx”就足够了。从帮助文件:

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

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

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


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

RegEx确实很有用,但我相信内置的“RegEx”就足够了。从帮助文件:

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

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

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


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

看起来很有用,但我在Mac:Slook上很有用,但我在Mac:SWorking上,但我也需要替换该单词后面的3个数字。因为有时我有“apt 01”…“apt 201”…“apt 24”…我需要替换所有这些是的,它将按照您所描述的替换它。您要做的是启用顶部栏中的“开发人员”选项卡(通过转到Excel选项),然后单击Visual Basic。在那里,你点击Sheet1(或者你的数据所在的任何一张纸),然后粘贴这个代码。要实际运行它,请返回电子表格,单击“宏”(在“开发人员”选项卡中),然后选择Sheet1.findApt并单击“运行”。希望这有帮助!我试过了,但它只是将“apt”改为“app”…但数字仍然存在。我的印象是,这就是你要找的?或者“apt”+(一个数字)的每个实例都需要改为“app 30”?工作正常,但我也需要替换该单词后面的3个数字。因为有时我有“apt 01”…“apt 201”…“apt 24”…我需要替换所有这些是的,它将按照您所描述的替换它。您要做的是启用顶部栏中的“开发人员”选项卡(通过转到Excel选项),然后单击Visual Basic。在那里,你点击Sheet1(或者你的数据所在的任何一张纸),然后粘贴这个代码。要实际运行它,请返回电子表格,单击“宏”(在“开发人员”选项卡中),然后选择Sheet1.findApt并单击“运行”。希望这有帮助!我试过了,但它只把“apt”改成了“app”…但数字一直都在那里。我的印象是,这就是你要找的?还是每个“apt”+(一个数字)的实例都需要改成“app 30”?我不知道!谢谢你的提示我不知道!谢谢你的提示