对于同类型 Excel 文件,一个个粘贴复制似乎比较麻烦,特别是文件量比较大的时候。程序的目的既是为了解决此类大量重复性劳动,今天给大家分享一个快速上传 Excel 数据,其实就是快速复制的小技巧。
对于文件上传,我们首先需要保证两份文档格式统一,因为 Excel 对于复制的数据如果格式不同意会报错。以下面两份实例文件格式为例,简单给下上传文件的代码,其他文件格式可做参照。
具体代码如下:
Sub startCopy() Dim folder As String Dim count As Integer Dim theBook As Workbook theFile = Application.GetOpenFilename(FileFilter:="Micrsoft Excel文件(*.xls), *.xls") Set theBook = Workbooks.Open(theFile) If theFile = "" Then MsgBox "未选择任何文件!" Exit Sub ElseIf theBook.Sheets(1).Range("A4") = "序号/层号" Then bool = CopyFile(theFile, 5, 1, 5) MsgBox "文件上传成功,请仔细核对!" Else theBook.Close MsgBox "文件格式不对,请仔细检查!" End If End Sub '复制数据 Function CopyFile(fileName, sStartRow, sStartCol, tStartRow) Dim sBook As Workbook Dim sSheet As Worksheet Dim rc As Integer 'copyRowNum = 0 If fileName = (ThisWorkbook.Path & "\" & ThisWorkbook.Name) Then Exit Function End If Set sBook = Workbooks.Open(fileName) '打开目标工作簿 Set sSheet = sBook.Sheets(1) '使用第一个sheet作为源数据所在页 sEndRow = sSheet.Cells(Rows.count, sStartCol + 1).End(xlUp).Row '获取源文件中最后一行数据所在行(第二列) sEndCol = sSheet.Cells(sStartRow - 1, Columns.count).End(xlToLeft).Column ' 获取源文件中最后一列数据所在列(标题行) If sEndRow >= srcStartLine Then sSheet.Range(Cells(sStartRow, sStartCol), Cells(sEndRow, sEndCol)).Copy ThisWorkbook.Sheets(1).Range("B" & tStartRow) '复制到指定位置 'copyRowNum = sEndRow - srcStartLine + 1 End If sBook.Close End Function
以上。
评论 抢沙发