2012-01-25 3 views
1

여러 개의 워크 시트 사이에 행을 복사해야하며 행할 수는 있지만 수식 만 복사하고 값은 복사하지 않습니다. 나는 VBA를 수년간 사용하지 않았고, 어떻게해야하는지 생각할 수 없다.전체 행 복사 (값이 아닌 수식) VBA

내 기존의 코드는 다음과 같습니다 값과 수식 사이의 선택은 프로세스의 붙여 넣기 반으로 구성되어

Workbooks.Open filename:=NewFN 
    filename = Mid(NewFN, InStrRev(NewFN, "\") + 1) 


     For i = 1 To 14 
      Workbooks(filename).Sheets("sheet1").Rows(i).Copy ThisWorkbook.Sheets("BD Raw Data").Rows(insertRow) 

      insertRow = insertRow + 1 
     Next i 

     Workbooks(filename).Close SaveChanges:=False 
+0

두 가지 (1) 이유를 사용 한 번에 14 개의 행을 복사 할 수 있습니다. (2)'Copy'를 사용할 필요가 없습니다.'rng1.Value' ='rng2.Value'를 사용하여 값을 복제 할 수 있습니다. 여기서 rng2는 소스 범위이고 rng1은 같은 크기의 대상 9 범위입니다. 'rng1.Formula '='rng2.Formula'를 복사하려면 – brettdj

답변

1

당신은 대신 XlPasteType.xlPasteValues 열거를 사용하여 PasteSpecial 방법을 사용할 필요가 Copy Destination

예를 들어,

Workbooks(filename).Sheets("sheet1").Rows(i).Copy 
ThisWorkbook.Sheets("BD Raw Data").Rows(insertRow).PasteSpecial Operation:=xlPasteValues 
+0

불행히도 이것은 오류 코드 1004를 생성합니다. Range 클래스의 PasteSpecial 메서드가 실패했습니다. –

+0

두 번째 줄에서 작업 : = 붙여 넣기 : =로 변경해야합니다. 나를 위해 일했다. –

-2

시도 그것은

Sub CopyFormulas() 
'http://officevb.com 

Dim sht1 As Worksheet, sht2 As Worksheet 

Set sht1 = Sheets("Sheet1") 
Set sht2 = Sheets("sheet2") 

'copy columns C from sht1 formulas to sht2 

sht1.Range("C:C").Copy 
sht2.Range("C:C").PasteSpecial xlPasteFormulas 

Application.CutCopyMode = False 

End Sub 

이 하위 복사 sht2의 열 C에 sht1에서 열 C의 모든 공식

[]의

+0

불행하게도 복사해야 할 열 수는 열려있는 열의 워크 시트에 따라 열 복사 솔루션이 나에게 적합하지 않음을 의미합니다. –