2011-06-07 261 views
0

我的問題是我該如何做一個替換,並找到一個從不相同的替換詞。 基本上,我想查找並替換單詞「x」,讓我們說5行,單詞「A」,然後找到並替換下一個單詞「B」,以此類推一千次。我如何設法做到這一點?Excel查找並替換

+0

這是關於編程嗎? C'on! – 2011-06-07 12:24:42

+0

@SonerGönül:呃,是...? – 2011-06-07 13:11:38

回答

0

您可以導出爲CSV嗎?如果是這樣,那麼你可以這樣做,然後在Linux中使用常用的命令行工具,或者使用一個文本編輯器,這些文件編輯器可以像你所描述的那樣查找/替換功能。

您可以使用GnumericLibreOffice來執行此操作(在Linux,Windows上)。

+0

我絕對可以這樣做,但我沒有任何線索如何使用Linux。 – D07062011 2011-06-07 12:49:32

+0

安裝Gnumeric(精益,電子表格應用程序)或LibreOffice(大型辦公套件) – 2011-06-15 17:38:05

3

在您從互聯網運行代碼之前,請始終備份您的數據。這將在列A中找到「x」的所有實例,並將它們替換爲您在vaReplace中設置的值。

Sub FindReplace() 

    Dim rFound As Range 
    Dim vaReplace As Variant 
    Dim lFound As Long 
    Dim lRepCount As Long 

    Const lMAX As Long = 5 'how many to replace before switching values 
    Const sFIND As String = "x" 'what to look for 
    Const lCOLUMN As Long = 1 'which column to look in 

    'list of values to use as replacements 
    vaReplace = Array("A", "B", "C", "D", "E") 

    Set rFound = Sheet1.Columns(lCOLUMN).Find(sFIND, Sheet1.Cells(Sheet1.Rows.Count, lCOLUMN), xlValues, xlWhole) 
    lFound = 1 
    lRepCount = 0 

    If Not rFound Is Nothing Then 
     Do 
      If lFound > lMAX Then 
       lRepCount = lRepCount + 1 
       lFound = 1 
      End If 

      'if not enough in vaReplace, use the last value 
      If lRepCount > UBound(vaReplace) Then lRepCount = UBound(vaReplace) 

      rFound.Value = vaReplace(lRepCount) 

      Set rFound = Sheet1.Columns(1).FindNext 

      lFound = lFound + 1 

     Loop Until rFound Is Nothing 
    End If 

End Sub