史蒂文(Steven)的工作表包含很多零件号,例如DCC2418R。他想将所有前缀(总是“ DCC”)更改为“ RR”,并将所有后缀(总是“ R”)更改为“ F”。因此,在查找和替换后,DCC2418R将变为RR2418F。史蒂文(Steven)知道他可以执行多次查找和替换操作来进行转换。他怀疑有一种方法可以通过一次“查找与替换”操作来实现,但是他不确定如何去做。

史蒂文(Steven),您的猜想是错误的,无法一incorrect而就。与Word(一次可以完成)不同,Word不包含执行通配符搜索的功能。这并不意味着您不走运。实际上,有几种方法可以完成您需要执行的任务。

也许最简单的方法是使用Flash Fill工具。假设您的零件号在A列中,从A1开始。在单元格B1中,输入格式正确的零件号。在单元格B2中,开始键入下一个正确格式化的零件号。 Flash Fill应该会发挥作用。 (请参见图1。)

image

图1. Flash Fill开始工作。

请注意Excel提供的浅色条目。这是“闪光填充”功能的结果。此时,您需要做的就是按Enter键,您将获得格式正确的零件号。如果由于某种原因Flash Fill无法自动提供转换,请在单元格B2中输入更正的零件号后,通过B列中的最后一个单元格选择B1的范围。(例如,选择范围B1 :B227。),然后按Ctrl + E,然后Flash Fill将完成您选择范围内的所有空白单元格。

当然,并非所有版本的Excel都提供Flash Fill。它最初是在Excel 2013中引入的。如果您没有Flash Fill,可以使用公式进行转换。单元格B1中的以下内容将给出单元格A1中任何内容的正确转换的部件号:

=SUBSTITUTE(SUBSTITUTE(A1,"R","F",1),"DCC","RR",1)

以下公式在单元格B1中也适用:

="RR" & MID(A1,4,LEN(A1)-4) & "F"

如果您喜欢使用宏方法,则可以创建一种方法来检查单元格,并在满足前缀和后缀条件的情况下进行更改。

下面的示例ReplacePartNum在名为“ MyRange”的命名范围上进行工作。 (换句话说,您需要在运行宏之前定义一个名为“ MyRange”的命名范围。该命名范围应包含所有您要检查和转换的单元格。)

Sub ReplacePartNum()

Dim myRange As Range     Dim c As Range     Dim origText As String     Dim firstBit As String     Dim endBit As String     Dim middleBit As String

Set myRange = Range("MyRange")

For Each c In myRange         origText = c.Text         firstBit = Left (origText, 3)

endBit = Right (origText, 1)

If firstBit = "DCC" And endBit = "R" Then             middleBit = Mid (origText, 4, Len(origText) - 4)

c.Value = "RR" & middleBit & "F"

End If     Next End Sub

您应该知道,如果需要,可以在宏中使用通配符。关于如何在宏中使用通配符的更详尽的解释,`link:/ excelribbon-Wildcards_in_Replace_With_Text [可以在本技巧中找到]。

_ExcelTips_是您进行经济高效的Microsoft Excel培训的来源。

本提示(13479)适用于Microsoft Excel 2007、2010、2013和2016。