2014-12-10 2 views
0

범위의 시트 셀 부분에있는 값 (수식 아님)을 해당 셀로 복사해야하는 요구 사항이 있습니다. 다른 시트로부터, 그리고 제 2 시트로부터 제 3 시트의 대응하는 셀로 이동한다. 내가 코드 아래 사용하고 처음 두 초에서 데이터를 복사하는 excel VBA를 사용하여 한 시트에서 다른 시트로, 두 번째 시트에서 세 번째로 데이터를 복사하여 붙여 넣기

,

Sub Test() 

    Dim rng   As Range 
    Dim c   As Range 
    Dim dest  As Worksheet 


    Set rng = Range("C3:E3") 
    Set dest = ThisWorkbook.Worksheets("Sheet2") 

     For Each c In rng 

     c.Copy dest.Cells(c.Row, c.Column) 

    Next c 

End Sub 

지금, 나는 sheet2에서 sheet3에 복사하고 싶습니다. 내 첫 번째 시트가 sheet2와 다른 값을 가질 수 있으므로 sheet2에서 구체적으로 필요합니다.

+0

, 당신은이 작업을 수행 할 수 있습니다' dest.Cells (c.Row, c.Column) .Value = c.Value' –

+0

@Tim Williams'Copy'는 나중에 셀이 다른 데이터를 가질 수 있으므로 별도로 유지해야합니다. – acr

+0

"필요합니다. (수식이 아닌) 값을 복사하십시오. 따라서 복사하는 셀에 수식이 없다는 것을 의미하는 것이 아니라면 왜 복사를 사용하는지 명확하지 않습니다. –

답변

1

당신이 수식을 포함 Sheet1에 필요하지만, 당신은 시트 2 및 Sheet3에, 그냥 값을 포함 다음에 코드를 수정해야하는 경우 대신`Copy`를 사용하는

Sub Test() 

Dim rng   As Range 
Dim c   As Range 
Dim dest  As Worksheet 
Dim dest2  As Worksheet 


Set rng = Range("C3:E3") 
Set dest = ThisWorkbook.Worksheets("Sheet2") 
Set dest2 = ThisWorkbook.Worksheets("Sheet3") 

For Each c In rng 
    c.Copy 
    dest.Cells(c.Row, c.Column).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
    dest2.Cells(c.Row, c.Column).PasteSpecial Paste:=xlPasteValues, Operation:=xlNone, SkipBlanks:=False, Transpose:=False 
Next c 

Application.CutCopyMode = False 

End Sub 
+0

감사합니다. 그러나 여기에서는 데이터가 sheet1에서 sheet3으로 복사되는 것처럼 보입니다. 그러나 나는 그 명령을보고있다. sheet2에 sheet1 복사, sheet3에 sheet2 복사 – acr

+0

값만 sheet2에 복사 한 다음 값을 시트 2에서 시트 3으로 복사 하시겠습니까? – TheEngineer

+0

@acr - 어떤 차이가 있습니까? 다른 범위를 복사하고 있습니까? 그렇지 않으면 최종 결과는 동일합니다. –

관련 문제