2011-10-28 8 views
1

このタイプのクエリでは私は経験がありません。他のシートのセルを一致させて置換する

「Sheet2の列Aの任意のセルが= Sheet1の列B内の任意のセルは、Sheet1のセルの値Sheet2の列を変更する場合は、列:

私は私が使用している作業のクエリを見つけた、ここにロジックです値」

この式は次のとおりです。私のために正常に動作しますが、私はそれがわずかに異なる必要

Sub Test1() 
Application.ScreenUpdating = False 
Dim cell As Range, varFind As Variant 
With Sheets("Sheet1") 
For Each cell In Sheets("Sheet2").Columns(1).SpecialCells(2) 
Set varFind = .Columns(2).Find(What:=cell.Value, LookIn:=xlFormulas, LookAt:=xlWhole) 
If Not varFind Is Nothing Then cell.Value = .Cells(varFind.Row, 1).Value 
Set varFind = Nothing 
Next cell 
End With 
Application.ScreenUpdating = True 
End Sub 

。これは、このロジックに従う必要があります。

でき、誰の助けをしてください「のSheet2の列Aの任意のセルが= Sheet1の列B内の任意のセルは、列Bの値をSheet2のためにシート1列にセルの値を変更した場合は」?

答えて

1

[更新IがAからBにシート2の列を変更する必要があったとして]

あなたはこれを書かれているとして、あなたは、単にこの行を変更します

If Not varFind Is Nothing Then cell.Value = .Cells(varFind.Row, 1).Value

If Not varFind Is Nothing Then .Cells(varFind.Row, 1).Value = cell.Offset(0,1).Value

パフォーマンスが問題になる場合は、このコードの速度を向上させるための範囲があります。さらに、SpecialCellsを見るためにシート2の列Bに一定のセルがない場合は、潜在的なコードバストがあります。コードをさらに微調整したい場合はplsにお尋ねください

+0

ありがとうございました! :) それはうまくいきました – mackwizard

+0

さらにテストした後、それは一致したセル値の1つのインスタンスだけを変更するようです。私のシートには、変更が必要な同じ値の複数のインスタンスがあります。すべてのマッチを変更するように変更できますか? – mackwizard

関連する問題