使用不同的值替换Excel工作表中的单元格

时间:2012-11-12 00:16:53

标签: excel vba excel-formula

我有一张包含大约900行数据的Excel工作表,我需要运行其中一列,并根据列中当前的内容替换该列具有的不同值。

例如,假设列F输入了这些值:
调整/航空&运输
调整/航空&运输
调整/航空&运输
Adj ESL讲师
调整/ ESL
调整/航空&运输
教授/航空
航空教授 副教授,教授 教授 教授/航空&运输
兼职教授 教授 教授 调整/航空
教授 Dir Master的编程/副教授 主席/副教授/航空与TS
调整助理教授/航空
助理教授/航空
Adj.Asst。 Prof-Aviation

我想浏览此列,如果其中一个单元格包含值“Aviation”,我想清除该单元格中的内容并输入“Aviation& Transportation”。

如果有人能告诉我如何完成这项意味着世界的任务!

3 个答案:

答案 0 :(得分:1)

添加一个新列并使用以下公式填充:

=IF(NOT(ISERROR(SEARCH("Aviation",B1))),"Aviation & Transportation",B1)
  • 这是未经测试的,可能需要一些语法调整,因为我没有把它放在excel中。但它应该指出你正确的方向。

答案 1 :(得分:1)

实际上,我有一个更好的解决方案。您可以在Find..Replace菜单中使用通配符。

按Ctrl F>替换>输入*Aviation*,然后写入要替换单元格值的任何内容。我测试了它,它的工作原理。您可以启用或禁用区分大小写。

答案 2 :(得分:1)

试试这个

 Sub replace()
    Dim Rws As Long, Rng As Range, c As Range
    Rws = Cells(Rows.Count, "F").End(xlUp).Row
    Set Rng = Range(Cells(1, 6), Cells(Rws, 6))

    For Each c In Rng.Cells
        If c Like "*Aviation*" Then c = "Aviation & Transportation"
    Next c
End Sub

您也可以在VBA代码中使用自动过滤器。

开始 enter image description here 结果 enter image description here

使用自动过滤器代码。

Sub Button1_Click()
    Dim Rws As Long, Rng As Range, c As Range
    Rws = Cells(Rows.Count, "F").End(xlUp).Row

    Columns("F:F").AutoFilter Field:=1, Criteria1:="=*Aviation*"
    Set Rng = Range(Cells(2, 6), Cells(Rws, 6)).SpecialCells(xlCellTypeVisible)
    Rng.Value = "Aviation & Transportation"
    ActiveSheet.AutoFilterMode = 0

End Sub