Sub 数据入库()
Dim f As FileDialog '声明控件
Dim filename$
Set f = Application.FileDialog(msoFileDialogOpen) '表示文件对话框的实例。
With f '打开文件的路径
.InitialFileName = "D:\其他文件\EXCEL制作\##EXCEL学习进阶\自用数据库-完善中\销售数据源.XLSX" '默认初始路径InitialFileName
.Show
Workbooks.Open (.SelectedItems(1)) '选择并打开默认初始路径下的文件夹中的文件
Dim path As String
Dim target As Workbook
path = ThisWorkbook.path
Set target = Workbooks.Open(.SelectedItems(1)) '选择并打开默认初始路径下的文件夹中的文件
Dim grid1, grid2 As Range '定义两个区域
For Each grid2 In ThisWorkbook.Sheets(1).Range(Cells(1, 1).Address, Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column).Address) '区域1是本表中第一行所有非空表头数据
For Each grid1 In target.Sheets(1).Range(Cells(1, 1).Address, Cells(1, Cells(1, Columns.Count).End(xlToLeft).Column).Address) '区域2是目标表中第一行所有非空表头数据
If grid1 = grid2 Then '如果两个表头相同
target.Sheets(1).Range(Cells(2, grid1.Column).Address, Cells(Cells(Rows.Count, grid1.Column).End(xlUp).Row, grid1.Column).Address).Copy '复制本表该表头列下的所有数据
ThisWorkbook.Sheets(1).Range(Cells(ThisWorkbook.Sheets(1).Cells(Rows.Count, grid2.Column).End(xlUp).Row + 1, grid2.Column).Address, Cells(ThisWorkbook.Sheets(1).Cells(Rows.Count, grid2.Column).End(xlUp).Row + 1, grid2.Column).Address).PasteSpecial Paste:=xlPasteValues '将复制的数据从目标表对应表头列下的起始空单元格处开始粘贴
End If
Next
Next
target.Close (True) '将目标表格保存并关闭
End With
End Sub
因为我刚接触VBA不久,目前还是菜鸟在慢慢学习,但最近工作中急需运用VBA实现,所以上网找了相关的代码,自己按照所需进行修改。但是现在出现以下问题,在复制过程中,会出现图例多余的数据,请问是什么问题呢?
看你的数据, 两个表比较有规律, 只是想合并数据的话, 用python可能更简单.
为什么做那么复杂,直接复制,粘贴(是指copy方法和paste方法)
如果没解决,可以追问我,我教你