复制整个行(值不是公式)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 

值和公式之间的select是在过程的粘贴一半。 查看PasteSpecial方法,特别是xlPasteValues参数。

http://msdn.microsoft.com/en-us/library/aa195818(v=office.11​​).aspx

您需要使用PasteSpecial方法使用XlPasteType.xlPasteValues枚举而不是Copy Destination

例如

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

尝试一下

  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中的所有公式从sht2到列C.

[]的