2014-01-13 2 views
0

데이터를 바꿀 코드를 얻으려고합니다. 여기에 내 시나리오가있다. Sheet2에서 아래쪽에있는 데이터 A2는 Month (1,2,3)이고 B2는 해당 연도 (2012)이고 c2, d2, e2는 숫자 데이터 (200, 150,50)입니다.셀에서 데이터를 찾고 이전 데이터를 업데이트하는 VBA

Now, In sheet1 월/분기를 선택하는 드롭 다운 목록에 대한 표 A22가 있습니다. B22 년. C22 : E22는 선택한 월 및 연도 수치 데이터를 편집합니다.

In Sheet1 In A22-April B22-2012를 선택하고 C22 : E22에 새로운 값을 입력하고 편집 버튼을 클릭하십시오. 이전에 입력 한 값에 대한 시트 2 테이블의 변경 내용을보고 싶습니다.

Sub edit() 

Dim s1 As Worksheet, s2 As Worksheet 
Set s1 = Sheets("Sheet1") 
Set s2 = Sheets("Sheet2") 
v1 = s1.Range("A22") 
v2 = s1.Range("B22") 
v3 = s1.Range("C22") 
v4 = s1.Range("D22") 
v5 = s1.Range("E22") 
s2.Activate 
For Each r In Intersect(ActiveSheet.UsedRange, Range("A:E")) 
If r.Value = v1 Then 
r.Offset(0, 1).Value = v2 
r.Offset(0, 2).Value = v3 
End If 
Next 

Worksheets("Sheet1").Range("A22:E22").ClearContents 

End Sub 

어떤 도움을 주시면 감사하겠습니다. 감사! 이 같은

+0

같은 코드의 어떤 것일까? 오류가 있습니까, 그렇다면 무엇입니까? –

+0

@TimWilliams 내가 초보자와 나는 s2의 함께 'code' 하위 편집() 워크 시트로 희미한 S1을 넣어 위해 노력 워크 시트로 설정 S1 시트 2 = 시트 ("Sheet1의") 설정 S2 = 시트 (" ") s1.Range V1 = ("A22 ") V2 = s1.Range ("B22 ") V3 = s1.Range ("C22 ") V4 = s1.Range ("D22 ") V5 = S1 .Range ("E22") s2.Activate 교차 (ActiveSheet.UsedRange, 범위 ("A : E"))에서 각각의 R 용 경우의 r.Value = v1에이어서 r.Offset (0, 1). 값 = v2,363,210 r.Offset 다음 워크 시트 ("Sheet1의") 범위 ("A22 : E22") (0, 2) .Value = V3는 끝.. ClearContents 최종 하위이 ' – user3190729

+0

을 code' 당신은 할 수 있습니다 질문을 편집하여 코드를 추가하십시오. –

답변

0

뭔가 :

Sub SaveEdit() 

Dim s1 As Worksheet, s2 As Worksheet 
Dim bFound as boolean, r as Range 

Set s1 = Sheets("Sheet1") 
Set s2 = Sheets("Sheet2") 

v1 = s1.Range("A22") 
v2 = s1.Range("B22") 
v3 = s1.Range("C22") 
v4 = s1.Range("D22") 
v5 = s1.Range("E22") 

If v1<>"" and v2<>"" Then 
    For Each r In Intersect(s2.UsedRange, s2.Range("A:E")).Rows 
     If r.cells(1).Value = v1 and r.cells(2).Value=v2 Then 
     r.cells(3).Value = v3 
     r.cells(4).Value = v4 
     r.cells(5).Value = v5 
     bFound = True 
     s1.Range("A22:E22").ClearContents 
     End If 
    Next 
    If Not bFound then msgbox "No match found for this record!" 
Else 
    msgbox "both Year and Month are required!" 
End If 


End Sub 
+0

'For'문에서 런타임 오류 1004가 발생합니다. – user3190729

+0

수정 됨'Range ("A : E")'>>'s2.Range ("A : E")' –

+0

입력 해 주셔서 감사합니다. 그것은 일했다 :) – user3190729

관련 문제