2012-01-25 57 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 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 

該子副本在C列所有公式從sht1 C列在sht2

[]的

+0

不幸的是,需要複製的列數取決於打開哪個工作表,這意味着列複製解決方案不適合我。 –