2009-11-09 8 views
1

두 개의 Excel 시트가 있습니다. 첫 번째 데이터에는 일부 데이터가 있습니다. 두 번째 페이지에는 업데이트 된 데이터가 있으므로 첫 번째 시트의 특정 정보를 변경하는 데 사용해야합니다.Excel에서 특정 셀 선택

예를 들면 : (첫 번째 시트에) 직원 임금과 그의 전화 번호가 있고 두 번째 시트에도 있습니다. 두 번째 시트에 직원 번호를 찾아 두 번째 시트에 명시된 임금에 따라 임금을 변경하는 코드를 작성하고 싶습니다.

답변

4

VBA가 필요하지 않습니다.이 기능은 간단한 셀 기능 (VLOOKUP())을 통해 수행 할 수 있습니다.

시트 1 :

 
    A  B  C   D 
1 Name No. Wage  NewWage 
--------------------------------- 
2 Adam 111 1000.00 [xxxx] 
3 Brad 222 1300.00 
4 Charly 333 2000.00 

시트 2 :

 
    A  B  C 
1 Name No. Wage 
----------------------- 
2 Adam 111 1100.00 
3 Brad 222 1400.00 
4 Charly 333 2100.00 

[xxxx]에 대한 공식이 될 것이다는 :

 
=VLOOKUP(B2;Sheet2!B:C;2;FALSE) 

이 두 번째 시트에서 각 사람에 대한 새로운 임금을 찾습니다. 수식을 채우십시오.

Sheet2의 값이 직원 번호순으로 정렬되어 있는지 확인하십시오. 그렇지 않으면 VLOOKUP()이 값을 찾지 못합니다. 자세한 내용은 the help page for VLOOKUP()을 읽어보십시오. 당신은 화면 업데이트 및 자동 해제되지 않는 경우가 V 느릴 수 있습니다,

dim findHere as Range 
dim result as Range 

set findHere = Sheet2.Range("A:A") 
set result = findHere.Find("EmployeeCode") 

if not result is nothing 'you get 'nothing' back if it can't find it. 
result.offset(0, 2).Value = "New Wage Here" 
end if 

아니면 세포를 통해 루프 (나는이 일하지만 가능하면 피할 것 수 :

+1

은 VLOOKUP (B2; Sheet2! B : C; 2; FALSE)이어야합니다 ... 두 번째 열을 돌려 주어야합니다. 수식을 값으로 변환하려면 모두 (ctrl-C)를 복사 한 다음 붙여 넣기 - 특수/붙여 넣기 값을 사용하여 방해 할 수있는 외부 파일에 대한 링크를 없애십시오. 특히이 파일을 전달하려는 경우 다른 사용자에게 – MikeD

+0

물론. 감사합니다. – Tomalak

+0

VLOOKUP이 값을 찾았는지 항상 확인합니다. 그렇지 않으면 오류가 반환됩니다. = IF (ISERROR (VLOOKUP (B2, Sheet2! B : C, 2, False)), "찾지 못함", VLOOKUP (B2, Sheet2! B : C, 2, False)) 또한 정확히 일치 시키려면 매핑 할 각 테이블에 고유 한 값을 지정하고 VLOOKUP의 마지막 매개 변수에는 항상 False를 사용하십시오. False를 사용하지 않으면 가장 가까운 항목을 찾습니다. –

0

당신은 .find 사용할 수 있습니다 직원 숫자는 두 번째 시트에 정렬하지 않을 경우 계산)

Dim r as Range 
dim finished as boolean 
set r = Sheet1.Range("A1") 
do 
if r.Value = <ID> finished = true 

while not unfinished 

' do stuff with r 
0

, 당신은 또한 INDEX와 함께 MATCH를 사용할 수 있습니다 Tomalak의 예를 사용

양식 ULA는 [XXXX]을 될 경우 :

= INDEX (시트 2 C : C; MATCH (B2, 시트 2 B!의!의 B, 0)

사실상

에서, MATCH 문 칼럼 B에서 행을 발견 직원 ID (B2)와 정확히 일치하는 2 번째 시트 그런 다음 INDEX는이 금액을 새 임금이 저장된 2 번 시트의 C 열로 오프셋합니다.

관련 문제