【发布时间】:2015-06-02 13:04:55
【问题描述】:
我的代码可以打开一个文件夹中的多个文件,将该文件的名称打印到主文件的第 1 列(继续向下),关闭当前文件,然后移动到下一个文件,直到文件夹为空。
单元格 J1(最好写为 1,10)中有我要在文件打开时复制的所有文件的信息,粘贴到第 4 列(继续向下列,与每个文件的名称相同),然后继续关闭当前文件并继续。
我不知道如何只复制一个单元格,因为一个范围需要多行的信息。这是我的工作代码,用于循环文件并打印它们的名称。有任何想法吗?谢谢!
Sub LoopThroughDirectory()
Dim objFSO As Object
Dim objFolder As Object
Dim objFile As Object
Dim MyFolder As String
Dim Sht As Worksheet
Dim i As Integer
Dim LastRow As Integer, erow As Integer
'Speed up process by not updating the screen
'Application.ScreenUpdating = False
MyFolder = "C:\Users\trembos\Documents\TDS\progress\"
Set Sht = ActiveSheet
'create an instance of the FileSystemObject
Set objFSO = CreateObject("Scripting.FileSystemObject")
'get the folder object
Set objFolder = objFSO.GetFolder(MyFolder)
i = 1
'loop through directory file and print names
For Each objFile In objFolder.Files
If LCase(Right(objFile.Name, 3)) = "xls" Or LCase(Left(Right(objFile.Name, 4), 3)) = "xls" Then
'print file name
Sht.Cells(i + 1, 1) = objFile.Name
i = i + 1
Workbooks.Open fileName:=MyFolder & objFile.Name
End If
'Macro recording of manual copy/paste but I want to apply on general scale
'Range("J1").Select
'Selection.Copy
'Windows("masterfile.xlsm").Activate
'Range("D2").Select
'ActiveSheet.Paste
ActiveWorkbook.Close SaveChanges:=False
Next objFile
'Application.ScreenUpdating = True
End Sub
【问题讨论】:
标签: excel copy-paste vba