2012-11-12 97 views
1

我有一個包含大約900行數據的Excel工作表,並且需要通過其中一列來運行,並根據當前內容替換該列中具有不同值的內容在列中。用不同的值替換Excel工作表中的單元格

例如,假設柱F具有輸入這些值:
調/航空&運輸
調/航空&運輸
調/航空&運輸
調ESL講師
調/ ESL
調/航空&交通運輸
教授/航空
教授航空
助理主席,教授
教授
教授/航空&運輸
兼職教授
教授
教授
調/航空
教授
迪爾碩士PROG /副教授
主席/副教授/航空& TS
Adj助教/航空
助理教授/航空
Adj.Ast。 Prof航空

我想穿過這一列,如果其中一個單元格包含值「Aviation」,我想清除該單元格中的內容並輸入「Aviation & Transportation」。

如果有人能告訴我如何完成這個任務,這將意味着世界!

+0

你做了什麼?如果你不瞭解VBA,那麼你的問題對社區來說就沒用了,因爲我們只會爲你編寫代碼。如果你已經知道VBA,那麼嘗試一下,回過頭來看看你已經做了什麼,以及你被困在哪裏。 – ApplePie

+0

這就是假定任務太大而無法簡單地使用Find..Replace。 – ApplePie

+0

哦,還有最後一條評論。如果你不介意使用另一列,你可以寫一個你想要做的替換圖表並使用VLOOKUP。 – ApplePie

回答

1

其實我有一個更好的解決方案。您可以在Find..Replace菜單中使用通配符。

按Ctrl Ctrl F>替換>輸入*Aviation*然後寫任何你想替換的單元格值。我測試了它,它工作。您可以啓用或禁用區分大小寫。

+0

通配符有很多幫助。謝謝! – Snipekiller430

1

添加新欄,並用公式類似填充它:

=IF(NOT(ISERROR(SEARCH("Aviation",B1))),"Aviation & Transportation",B1) 
  • 這是未經測試,可能需要一些語法調整,因爲我還沒有把它在Excel中。但它應該指向正確的方向。
+0

然後您可以隱藏原始列......或複製然後粘貼(值)以用新數據替換公式。然後額外的列可以被刪除。 – TheRuss

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 
相關問題