如何解决仅将最新数据合并到当前工作簿中的多个表中的多个工作簿
我有很多excel文件(名称不相同),我需要使用VBA代码将所有文件合并到当前工作簿的1张纸中。所有这些文件都有多个工作表,只有一个工作表是公用的-名为LA Work Doc.。对于所有工作簿,标题都是恒定的。 假设我的文件是File12032020,File14062020和File20082020。在所有这些文件的A列上,都有一些唯一的文档代码。在D列上,有关于特定文档的信息被更新的日期(但不仅有日期。.还有一些我需要保留的N / A和TBC)。代码可以在File12032020和File20082020中,但是D列的日期不同。将所有这些文件合并到1个主文件中时,我只想显示最新数据(仅显示最近更新的信息)。 / p>
我用来将所有工作簿合并为一张纸的代码如下:
Private Sub CommandButton1_Click()
Dim CurrentBook As Workbook
Dim WS As Worksheet
Set WS = ThisWorkbook.Sheets("LA Work Doc. ")
Dim IndvFiles As FileDialog
Dim FileIdx As Long
Dim i As Integer,x As Integer
Set IndvFiles = Application.FileDialog(msoFileDialogOpen)
With IndvFiles
.AllowMultiSelect = True
.Title = "Multi-select target data files:"
.ButtonName = ""
.Filters.Clear
.Filters.Add ".xlsm files","*.xlsm"
.Show
End With
Application.DisplayAlerts = False
Application.ScreenUpdating = False
For FileIdx = 1 To IndvFiles.SelectedItems.Count
Set CurrentBook = Workbooks.Open(IndvFiles.SelectedItems(FileIdx))
For Each Sheet In CurrentBook.Sheets
If Sheet.Name = "LA Work Doc. " Then
Dim LRow1 As Long
LRow1 = WS.Range("A" & WS.Rows.Count).End(xlUp).Row
Dim LRow2 As Long
LRow2 = CurrentBook.ActiveSheet.Range("A" & CurrentBook.ActiveSheet.Rows.Count).End(xlUp).Row
Dim ImportRange As Range
Set ImportRange = CurrentBook.ActiveSheet.Range("A5:AD" & LRow2)
ImportRange.Copy
WS.Range("A" & LRow1 + 1).PasteSpecial Paste:=xlPasteValues,Operation:=xlNone,SkipBlanks:=False,Transpose:=False
End If
Next Sheet
CurrentBook.Close False
Next FileIdx
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub
有人可以帮我这个忙吗?
谢谢。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。