Excel 搜索并使用搜索结果进行替换

Excel 搜索并使用搜索结果进行替换

你好,我有一个包含 2 个工作表的 Excel 文件,一个是包含一些名称和值的表格。另一个是名称列表,但包含更多信息(CSV 格式)。

工作表 1(属):

g__Mannheimia 
g__Peptococcus
g__unspecific_Proteobacteria
g__Acinetobacter

工作表 2(树):

d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Salmonella
d__Bacteria;p__Firmicutes;c__Bacilli;o__Lactobacillales;f__Streptococcaceae;g__Streptococcus
d__Bacteria;p__Actinobacteriota;c__Actinobacteria;o__Mycobacteriales;f__Mycobacteriaceae;g__Mycobacterium
d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Enterobacterales;f__Enterobacteriaceae;g__Klebsiella
d__Bacteria;p__Proteobacteria;c__Gammaproteobacteria;o__Pseudomonadales;f__Moraxellaceae;g__Acinetobacter

我想要做的是,在工作表 2 中搜索工作表 1 中的名称,然后用工作表 2 中的文本替换工作表 1 的名称。这可以通过搜索和替换功能手动完成,但因为数据量巨大,所以我想找另一种方法来完成。

我编写了这个宏来尝试在两个工作表上进行迭代并匹配名称,但是没有起作用。

Sub Macro1()
Set myrange = Genus.Range("A4:A174")
For Each cell In myrange

Dim find1
Dim replace1

find1 = cell.Value
replace1 = Tree.Range("A1:A7372").Value

    Genus.Cells.Replace What:=find1, Replacement:=replace1, LookAt:=xlPart, SearchOrder _
        :=xlByRows, MatchCase:=False, SearchFormat:=False, ReplaceFormat:=False

Next cell
End Sub

非常感谢任何形式的帮助!

答案1

看看这是否有帮助:

Sub Macro1()
    Dim myrange As Range
    Set myrange = Genus.Range("A4:A174")
    Dim replace1 As Range
    Set replace1 = Tree.Range("A1:A7372")

    For Each cell In myrange
        Dim find1 As Range
        Set find1 = replace1.Find(What:=cell.Text, LookAt:=xlPart,   LookIn:=xlValues, SearchOrder:=xlByRows, _
                    MatchCase:=False)
        If Not find1 Is Nothing Then
            cell.Value = find1.Value
        End If
    Next cell
End Sub

相关内容