我有一個這樣的輸入:VBA:搜索,保存和行會替換根據情況
gen,N,,,GONGD,,,N,,,KL,0007bd,,,,,,,,TAK,
gen,N,,,RATEC,,,N,,,KP,0007bc,,,,,,,,TAZ,
kap,N,,,EBFWE,N,,,,,,,,,KP,002bd4,,,KP,123000,,,,,N,,,,P
kap,N,,,ST,WEIT,E3,EBFWEI,,,KP,002bd2,N,,,,,,KP,002bd3,,,,,,,Z,MG00,,,,,N,,,,P
我有這樣的代碼:
Sub Find()
Dim rFoundAddress As Range
Dim sFirstAddress As String
Dim x As Long
With ThisWorkbook.Worksheets("Sheet1").Columns(1)
Set rFoundAddress = .Find("kap,*", LookIn:=xlValues, LookAt:=xlWhole)
If Not rFoundAddress Is Nothing Then
sFirstAddress = rFoundAddress.Address
Do
Dim WrdArray() As String
Dim text_string As String
Dim i As String
Dim k As String
Dim num As Long
text_string = rFoundAddress
WrdArray() = Split(text_string, "KP,")
i = Left(WrdArray(1), 6)
k = Left(WrdArray(2), 6)
Columns("A").Replace What:=i, _
Replacement:=k, _
LookAt:=xlPart, _
SearchOrder:=xlByRows, _
MatchCase:=False, _
SearchFormat:=False, _
ReplaceFormat:=False
Set rFoundAddress = .FindNext(rFoundAddress)
Loop While Not rFoundAddress Is Nothing And _
rFoundAddress.Address <> sFirstAddress
End If
End With
End Sub
我所試圖做的事: 找到所有以「kap」開頭的行,並在第一個「KP」後保存6個字符/ int,在第二個「KP」後保存爲6個chars/int。然後搜索整個數據集(列A中的數百行),如果它們包含字符串i,並且如果是,則將其替換爲字符串k。並循環這一點。所以它會用另一條以「kap」開頭的行來做同樣的事情。代碼給我錯誤消息:第二次涉及到「列(」A「)...」時,下標超出範圍。你能幫我嗎?
預先感謝您
是的,我們可以幫你,但是這是[你昨天的職位(的延伸https://stackoverflow.com/questions/40508377/vba-search-for-value-in-a-column -after-specific-pattern),所以請在那裏移動你的修改。謝謝。 –
@PierreChevallier嗨!通常的做法是什麼?只需從昨天編輯我的問題與這一個?或作爲新的評論或如何?謝謝 –
對您以前的帖子發表評論,說明您收到的錯誤是什麼,如果它是由用戶的回答提供的,請在用戶的評論部分回覆,以便他/她可以幫助您。 –