我正在尝试将excel的30本书中的值复制到另一本书excel中,但是由于它们的名称不同,我不确定如何引用这30本书。而且我不知道如何引用excel的文件我要关闭。
我正在运行Excel手册中的宏,它将具有其他excel的所有值。
我的问题是:
我有此代码:
Sub MacroPrueba4()
'Paso 1: Declarar las variables
Dim Archivos As String
Dim vals As Variant
Worksheets("Hoja1").Range("A3:A7").Copy
vals = Worksheets("Hoja1").Range("A2:F14").Value
Archivos = Dir("C:\Users\fernandofernandez\Desktop\Prueba\*.xlsx")
Do While Archivos <> “”
'Paso 3: Open the books one by one
Workbooks.Open "C:\Users\fernandofernandez\Desktop\Prueba\" & Archivos
'code
vals = Worksheets(1).Range("E2").Value
' this is something i use to paste the format of the last column format
Workbooks("libro2").Range("C10").End(xlToRight).Select
Selection.EntireColumn.Select
Selection.Copy
ActiveSheet.Range("C10").End(xlToRight).Offset(0, 1).Select
Selection.EntireColumn.Select
ActiveSheet.Paste
'Selection.Paste
' this is where I will paste de value
' is this right??
ActiveSheet.Range("C10").End(xlToRight).Offset(0, 1).Select
Selection.Value = vals
'this close the active excel, but I think it would close the excel that I am pasting the values, because it would be the activeworkbook. I want to close only the 30 excels that will open in the loop.
ActiveWorkbook.Close SaveChanges:=True
Archivos = Dir
Loop
End Sub
答案 0 :(得分:0)
函数Workbooks.Open
使工作簿打开,因此您可以编写:
my_workbook = Workbooks.Open "C:\Users\fernandofernandez\Desktop\Prueba\" & Archivos
' Your code
my_workbook.Close SaveChanges:=True
以此确保您关闭了正确的书。
对于分配值,如果您想使用干净的代码,请不要使用select
。
您可以:
ActiveSheet.Range("C10").End(xlToRight).Offset(0, 1).value = vals
不客气。
答案 1 :(得分:0)
合并文件夹中所有工作簿中的数据。
newNode
有关所有详细信息,请参见下面的链接。
https://www.rondebruin.nl/win/s3/win008.htm
您可能还想考虑使用此实用程序。