0

我正在研究一个宏来连接来自不同 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

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

在此处输入图像描述

我希望它改为复制值。所以我尝试换行,让它从第二行开始,但它不起作用,有人可以帮我pleeeeeease,谢谢。

4

1 回答 1

2

代替.Paste,使用以下.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
于 2013-05-17T13:36:24.810 回答