![](/img/trans.png)
[英]Excel VBA Adding the Value to the Existing Value instead of Replacing it?
[英]Excel VBA - Replacing Value
我想用91H,92H,93H,94H,99H替換數字91、92、93、94、99。 但是,每次我第二次運行宏時,宏都會在數字中添加另一個H ,例如,看起來像91HH。 我找不到解決方案。 我不希望宏在數字中添加另一個H。 我希望宏僅將H添加到新值,而不添加到已經更改的值。
Columns("D").Replace What:="92", _
Replacement:="92H", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
Columns("D").Replace What:="93", _
Replacement:="93H", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
Columns("D").Replace What:="91", _
Replacement:="91H", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
Columns("D").Replace What:="94", _
Replacement:="94H", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
Columns("D").Replace What:="99", _
Replacement:="99H", _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
我沒有發布整個VBA代碼,因為它有點長。
我認為有一種解決方法。 在宏之前添加代碼,用91、92、93、94、99替換91H,92H,93H,94H,99H。新宏將執行以下操作:
答:“ 91H”:刪除“ H”並添加“ H”,即不執行任何操作
B.“ 91”:不適合第一部分,“ H”將添加到第二部分
這應該適用於所看到的任何文本。
通常,您在重復很多代碼。 應該避免這種情況。 一種方法是這樣的:
Option Explicit
Sub ReplaceSomething(columnName As String, lookFor As String, replaceWith As String)
Dim rngCol As Range
Dim rngCells As Range
If WorksheetFunction.CountA(Columns(columnName)) = 0 Then Exit Sub
Set rngCol = Columns(columnName).SpecialCells(2)
If rngCol Is Nothing Then Exit Sub
For Each rngCells In rngCol
If rngCells = lookFor Then
rngCells = replaceWith
End If
Next rngCells
End Sub
Sub TestMe()
ReplaceSomething "A", "H", "H1"
ReplaceSomething "B", "H", "H1"
ReplaceSomething "D", "H", "H1"
End Sub
因此,您可以將列名作為函數ReplaceSomething的參數,它將在列A,B和C中運行。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.