2011-10-28 3 views
1

이 유형의 쿼리와 관련하여 경험이 없으며 막혔습니다.다른 시트의 셀 일치 및 바꾸기

"시트 2 열 A의 셀이 = Sheet1의 열 B의 모든 세포, Sheet1의에 셀 값 시트 2 열을 변경하는 경우 열 :

내가 사용한 작업 쿼리를 발견했습니다, 여기에 논리입니다 값 "

이 공식은 : 나를 위해 잘 작동하지만 나는 그것이 약간 다른 필요

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 

. 그것은이 논리를 수행 할 필요가 :

수있는 사람의 도움을주십시오 "시트 2 열 A의 셀이 = Sheet1의 열 B의 모든 셀, 열 B 값을 삽입하거나하는 시트 1 열을 셀 값을 변경하는 경우"?

답변

1

[업데이트 내가 A에서 B로 시트 2 열을 변경해야했던대로]

당신이를 writen 것처럼 단순히이 줄을 바꿀 것

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

추가 테스트가 끝나면 일치하는 셀 값의 인스턴스가 하나만 변경됩니다. 내 시트에는 변경해야하는 동일한 값의 인스턴스가 여러 개 있습니다. 모든 경기를 변경하도록 수정할 수 있습니까? – mackwizard

관련 문제