Excel 2010查找和替换:替换为找到的通配符

时间:2015-06-25 23:39:17

标签: regex excel

我试图通过从每个单元格中删除第二个单词(如果适用)来截断Excel工作表中的某些数据。也就是说,如果一个单元格有两个单词,我希望它删除第二个单词。一个示例是找到foo bar并将其替换为foo。通过研究,我发现以下内容适用于Excel 2011(适用于Mac),但不适用于其他版本:

Find: (*) (*)
Replace with: \1

如何在我的Excel版本中完成此操作?另外,是否有另一种方法可以获得相同的结果?

1 个答案:

答案 0 :(得分:0)

如果你想要一个公式..

=IF(FIND(" ",A2),TRIM(LEFT(A2,FIND(" ",A2))),A2)

或VBA子程序..

Sub GetFirstWord()

    Application.ScreenUpdating = False    

    Dim n As Integer
    Dim strWord As String

    n = 2

    Do While Cells(n, 1).Value <> ""

        strWord = Cells(n, 1).Value

        If InStr(1, strWord, " ") Then

           Cells(n, 1).Value = Replace(Left(strWord, InStr(1, strWord, " ")), strWord, "")

        End If

        n = n + 1

    Loop


    Application.ScreenUpdating = True

 End Sub

如上所述的两种解决方案都假定单词位于A列中。