VBA在Excel文件之间复制值

我正在处理一个macros来连接来自不同Excel文件的行,这些文件都位于同一目录下,这里是当前版本:

Sub Compilation() Dim Temp As String Dim Ligne As Long Temp = Dir(ActiveWorkbook.Path & "\*.xls") Application.DisplayAlerts = False Do While Temp <> "" If Temp <> "Recap.xls" Then Workbooks.Open ActiveWorkbook.Path & "\" & Temp Workbooks(Temp).Sheets(1).Range("A2").CurrentRegion.Copy Workbooks("Recap.xls").Sheets(1).Activate Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1 Range("A" & CStr(Ligne)).Select ActiveSheet.Paste Workbooks(Temp).Close End If Temp = Dir Loop Range("A1").Select Application.DisplayAlerts = True end sub 

它工作得很好,除了macros复制公式,如:

在这里输入图像说明

我希望它能够复制值。 所以我试图改变线,并从第二行开始,但它不工作,有人可以帮我pleeeeeease,谢谢。

使用.PasteSpecial方法代替.PasteSpecial

 ActiveSheet.PasteSpecial (xlPasteValues) 

应用于您的项目,如下所示:

 Sub Compilation() Dim Temp As String Dim Ligne As Long Temp = Dir(ActiveWorkbook.Path & "\*.xls") Application.DisplayAlerts = False Do While Temp <> "" If Temp <> "Recap.xls" Then Workbooks.Open ActiveWorkbook.Path & "\" & Temp Workbooks(Temp).Sheets(1).Range("A2").CurrentRegion.Copy Workbooks("Recap.xls").Sheets(1).Activate Ligne = Sheets(1).Range("A65536").End(xlUp).Row + 1 Range("A" & CStr(Ligne)).PasteSpecial xlPasteValues Workbooks(Temp).Close End If Temp = Dir Loop Range("A1").Select Application.DisplayAlerts = True End Sub