你好,我有一个包含 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