将值从一个Excel工作簿粘贴到其他工作簿时出现问题

时间:2019-06-01 14:38:32

标签: excel vba excel-vba

我想将相同的值从一个工作簿复制到另一个30个工作簿。我找到了一个宏,该宏可以打开并复制第一个工作簿的文件的所有值,但是我无法粘贴任何值,而且我不确定为什么。另外,由于名称很多,我也不知道如何粘贴要粘贴的工作簿的名称。

我想这就是问题所在。 “ reports.xlms”只是文件的一个名称,还有其他文件具有其他名称。 是否可以在不指定工作表名称的情况下复制和粘贴值?也许只说数字,例如worksheet(1),就像这样:

Workbooks("Reports.xlsm").Worksheets("Data").Range("A2:D9").PasteSpecial

即使我使用以下简单代码,它也不会复制任何值:

Range("B2:B5").Select
Selection.Copy
Sheets("Hoja2").Select
Range("B2").Select
ActiveSheet.Paste

这是我的代码:

Sub AbrirArchivos()
 Dim Archivos As String

 'Paso 2: Especificar una carpeta y el tipo de archivo que buscamos
 'en este caso la carpeta se llama "temporal" y el tipo de dato es "xlsx"

 Archivos = Dir("C:\Users\fernandofernandez\Desktop\Prueba\*.xlsx")
 Do While Archivos <> “”

 'Paso 3: Abrir los libros uno por uno
 Workbooks.Open "C:\Users\fernandofernandez\Desktop\Prueba\" & Archivos

'code:

  ***Workbooks("New Data.xlsx").Worksheets("Export").Range("A2:D9").Copy


  Workbooks("Reports.xlsm").Worksheets("Data").Range("A2:D9").PasteSpecial Paste:=xlPasteValues***


 'Paso 5: Cuadro de mensaje, cerrar y guardar cambios

 MsgBox ActiveWorkbook.Name

 ActiveWorkbook.Close SaveChanges:=True

'Paso 6: buscar más archivos en la carpeta para volver seguir la secuencia

 Archivos = Dir
 Loop

End Sub

1 个答案:

答案 0 :(得分:1)

在少数情况下,我每次都会使用副本PasteValues。有时会出现格式或公式的情况,但对于值,我总是建议您使用仅设置Value的方法。参见示例:

Workbooks("Reports.xlsm").Worksheets("Data").Range("A2:D9").Value = _ Workbooks("New Data.xlsx").Worksheets("Export").Range("A2:D9").Value