2017-10-25 20 views
1

商品の長さが|製品名|そして、私は製品価格を置き換えるために、オンラインで私が見つけたこのコードを使用している複数の行をExcelで検索して置換する

製品価格は:

Sub Multi_FindReplaceALL_pvc_replace_new() 
'PURPOSE: Find & Replace a list of text/values throughout entire workbook 
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault 

Dim sht As Worksheet 
Dim fndList As Variant 
Dim rplcList As Variant 
Dim x As Long 

fndList = Array("2 ft", "PVC", "390") 
rplcList = Array("2 ft", "PVC", "290") 

'Loop through each item in Array lists 
For x = LBound(fndList) To UBound(fndList) 
'Loop through each worksheet in ActiveWorkbook 
    For Each sht In ActiveWorkbook.Worksheets 
    sht.Cells.Replace What:=fndList(x), Replacement:=rplcList(x), _ 
     LookAt:=xlPart, SearchOrder:=xlByRows, MatchCase:=False, _ 
     SearchFormat:=False, ReplaceFormat:=False 
    Next sht 

    Next x 

End Sub 

私が午前問題は、このVBスクリプトは、同様の製品名アクリルの価格設定を置き換えています。

ご協力いただければ幸いです。必要に応じて追加情報を提供することもできます。ドクの

画像リンク:http://prntscr.com/h1votx

+0

あなたのコードがどのように動作するのかを説明してください。 –

+0

あなたが掲示したコードと価格の関係は何ですか?更新された価格設定はどうすればよいでしょうか? – BruceWayne

+0

すべての2フィートPVC製品で、2フィートのPVC価格を390から290に変更したいと考えています。それは理にかなっていますか? –

答えて

0

あなただけの1枚を持っていますか?このコードは、印刷画面のシートで動作しますが、値が入る現在の列にはハードコードされています。異なる値または異なる列に対して機能する必要がある場合は、少し緩和することができます。

Sub Multi_FindReplaceALL_pvc_replace_new() 
'PURPOSE: Find & Replace a list of text/values throughout entire workbook 
'SOURCE: www.TheSpreadsheetGuru.com/the-code-vault 

Dim sht As Worksheet 
Dim i As Integer 

Dim lastRow As Integer 

'get the last row in the sheet 
With ActiveSheet 
    lastRow = .Cells(.Rows.Count, "I").End(xlUp).Row 
End With 

'Loop through each row in the sheet 
For i = 1 To lastRow 
'Loop through each worksheet in ActiveWorkbook 
    If Cells(i, 9).Value = "2 ft" And Cells(i, 11).Value = "PVC" Then 
     Cells(i, 20).Value = "290" 
    End If 
    Next i 

End Sub 

基本的には、前のコードはシート全体を実行していて、その配列内にあればすべての値を変更していました。この関数は行ごとに移動し、具体的には値を含む列を比較します

+0

もちろん、もっと簡単な方法は、列にフィルターを追加し、次にoption1とoption2でフィルターをかけて、同時にすべての行を編集することです。 – Kudu2

+0

こんにちはKudu2 - 私はそのコードを試して何らかの理由で私はcouldn 2フィートのラインで390から290のPVC価格を取り替えることになる。 –

+0

申し訳ありませんが、あなたのoption1とoption2が列bとdにあると思いました。私は適切な列のコードを更新しました。しかし、私は言ったように、あなたの列名にフィルタを追加すると、大量のデータを扱う方がずっと簡単です。 https://www.gcflearnfree.org/excel2013/filtering-data/1/を参照してください。 – Kudu2

関連する問題