2011-06-07 164 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