0
我试图从一个文件夹位置中的多个工作簿中获取一系列数据,并将所有信息都过滤到预先存储的单个工作表中,现有文件。VBA从文件的文件夹复制信息并将信息编译为单个工作簿
到目前为止,我有函数来获取文件的列表:
Function GetFileList(FileSpec As String) As Variant
Dim FileArray() As Variant
Dim FileCount As Integer
Dim FileName As String
On Error GoTo NoFilesFound
FileCount = 0
FileName = Dir(FileSpec)
If FileName = "" Then GoTo NoFilesFound
Do While FileName <> ""
FileCount = FileCount + 1
ReDim Preserve FileArray(1 To FileCount)
FileArray(FileCount) = FileName
FileName = Dir()
Loop
GetFileList = FileArray
Exit Function
NoFilesFound:
GetFileList = False
End Function
Sub ClearCosting()
Dim var As Variant
Dim loc As String
loc = "C:\Users\m.raby\Desktop\testfolder"
var = GetFileList(loc & "*.xls*")
Dim StrFile As Variant
For Each StrFile In var
Workbooks.Open (loc & StrFile)
sh.Activate
On Error Resume Next
Set uCost = Cells.Find(What:="Run rate", After:=[A1], LookIn:=xlFormulas, _
LookAt:=xlWhole, SearchOrder:=xlByRows, SearchDirection:=xlNext, _
MatchCase:=False, SearchFormat:=False)
Range(Cells(uCost.Row + 1, uCost.Column - 4), Cells(uCost.Row.End(xlDown), uCost.Column + 8)).Copy
On Error GoTo 0
Next StrFile
End Sub
什么,我停留在现在是数据的检索。我正在尝试获取位于文本“Run rate”下方一个单元格和四个文本的信息,并从该单元格复制到空白单元格之前的最后一个单元格(在该行中)以及右侧八列。
我想复制这些信息,并将其粘贴到我的桌面上名为“sampletest.xlsx”的工作簿中,以及它在每行信息中的文件名。在完成了FIRST工作表(应该是所有工作簿中的活动工作表)之后,我想让它进入下一个工作簿,并在“sampletest.xlsx”的下一个ow中附加类似信息。
我怎样才能捕获这个范围只为第一个工作表,然后捕获文件名,并将所有这些信息附加到单个工作簿,而循环一个文件夹?
我没有任何问题与整个工作簿循环它,这是更多的复制+粘贴 –
实际编码的困难,我增加了两个周期的职位。现在它显示了如何在刚刚打开的文件中查找开始和结束行,以及如何将两行之间的数据复制到原始表单。有更好的方法来做到这一点,但在我看来,这是了解发生了什么的最好方法。 – stenci