2013-08-20 4 views
0

2 매의 스프레드 시트가 있습니다. 첫 번째 시트에서 몇 가지 값을 얻었습니다. 버튼을 클릭하면 두 번째 시트가 다음과 같이 나타납니다. 1. 새 행이 상단에 삽입됩니다. 2. 첫 번째 시트의 데이터가 복사됩니다.매크로가있는 수식이있는 셀 복사

그러나 복사 된 셀 다음에 수식이있는 열이 있습니다. 그리고 vbscript를 사용하여 새 행을 삽입 한 후 해당 수식을 복사하는 방법을 알지 못합니다.

Sub Trade1() 
    Sheets("Trades").Select 
    Rows("2:2").Select 
    Selection.Insert Shift:=xlDown, CopyOrigin:=xlFormatFromLeftOrAbove 
    Range("A2:R2").Select 
    Selection.ClearContents 
    Range("A2").Select 
    Dim fromRange As Range, toRange As Range 
    Set fromRange = Sheets("Enter Trade").Range("B2:B20") 
    Set toRange = Sheets("Trades").Range("A2") 
    fromRange.Copy 
    toRange.PasteSpecial Paste:=xlPasteValues, Transpose:=True 
End Sub 

답변

1

(이 내용은 3 행에 지금의 있도록) 새 행 2를 삽입 한 후, 나는 데이터 값을 (기본적으로 중복을) 2 행, 다음 오버라이드 (override) 다시 3 행을 복사합니다 당신 B20를,과 같이 : 범위 B2 '거래 입력'시트로 이동하려는 나는 여기에서 제공 통합 문서의 수정 된 버전 업로드 한

Sub Trade_Button_Click() 

    Dim btn As Button 
    Dim wsEntry As Worksheet 
    Dim wsTrades As Worksheet 

    Set wsEntry = Sheets("Enter Trade") 
    Set wsTrades = Sheets("Trades") 
    Set btn = wsEntry.Buttons(Application.Caller) 

    wsTrades.Rows(2).Insert 
    wsTrades.Rows(3).Copy wsTrades.Rows(2) 
    With Intersect(wsEntry.Range("A2", wsEntry.Cells(Rows.Count, "A").End(xlUp)).EntireRow, wsEntry.Columns(btn.TopLeftCell.Column)) 
     wsTrades.Range("A2").Resize(, .Rows.Count).Value = Application.Transpose(.Value) 
    End With 

    Set wsTrades = Nothing 
    Set wsEntry = Nothing 

End Sub 

: 수정 된 버전에서 https://docs.google.com/file/d/0Bz-nM5djZBWYa0R5T2hXMERabjg/edit?usp=sharing

을, 나는 모든 매핑 한 Enter 버튼을 위 매크로에 추가하십시오. 버튼을 클릭하면 올바른 열의 값을 복사하고 'Trades'시트의 나머지 표에있는 수식을 성공적으로 복사합니다.

+0

수식이 복사되지 않았습니다. –

+0

파일은 여기에 있습니다. https://docs.google.com/file/d/0B77YRWgG0ik8RW1YR2hhSzF3aEE/edit?usp=sharing –

+0

제공된 파일을 수정하고 답변을 업데이트했습니다. 수정 된 파일은 편집 된 응답에서 사용할 수 있습니다. – tigeravatar