中易网

您好!能给”vb 多个excel文件依次拷贝到另一个excel的一个sheet里“的代码给看看吗?新手不懂啊!谢谢!

答案:2  悬赏:0  
解决时间 2021-02-22 07:42
您好!能给”vb 多个excel文件依次拷贝到另一个excel的一个sheet里“的代码给看看吗?新手不懂啊!谢谢!
最佳答案
上次工作需要 我写了一个,供你参考

nhPrivate Sub Command1_Click()
Dim objDlg, objF, DstPath
Set objDlg = CreateObject("Shell.Application")
Set objF = objDlg.BrowseForFolder(&H0, "选择存放位置:", &H1)
If InStr(1, TypeName(objF), "Folder", vbTextCompare) > 0 Then
DstPath = objF.self.Path
Else
MsgBox "目录无效!"
End If
With DirPart
.Pattern = "*.xls"
.Path = DstPath
'For i = 0 To .ListCount - 1
'DirPart.AddItem (.List(i))
'Next
Text2.Text = DstPath
End With
End Sub

Private Sub Command2_Click()
CommonDialog1.Filter = "xls|*.xls"
CommonDialog1.ShowOpen
Text1.Text = CommonDialog1.FileName
End Sub

Private Sub Command3_Click()
'CommonDialog2.ShowOpen
'Text2.Text = CommonDialog2.FileName
End Sub

Private Sub Command4_Click()
' If DirPart.Path = DirTotal.Path Then
' MsgBox "为提高处理速度,请不要把总表文件和分表文件放于同一文件夹下!", _
vbOKOnly + vbExclamation, "警告"
'ElseIf FileTotal.FileName = "" Then
' MsgBox "请先在总表文件列表框内选择总表文件!", vbOKOnly + vbCritical, "错误"
'Else
Dim xlsApp As Object
Dim xlsBookTotal As Object
Dim xlsBookPart As Object
Dim xlsSheetTotal As Object
Dim xlsSheetPart As Object
Dim i As Integer
Dim j As Integer
Dim intFileCount As Integer
Dim intHead As Integer
Dim intEnd As Integer
Dim intLastRow As Long
Dim intLastRowPart As Long
Dim timeStart As Date

On Error GoTo ErrHandle
lblInfo.ForeColor = vbBlue
lblInfo.Caption = "正在汇总…"
timeStart = Now()

Set xlsApp = CreateObject("Excel.Application")
Set xlsBookTotal = xlsApp.Workbooks.Open(Text1.Text)
Set xlsSheetTotal = xlsBookTotal.Worksheets(1)

intFileCount = DirPart.ListCount

For i = 0 To intFileCount - 1
Set xlsBookPart = xlsApp.Workbooks.Open(DirPart.Path & "\" & DirPart.List(i))
Set xlsSheetPart = xlsBookTotal.Worksheets(1)
xlsheet.Range("B2:B18").Copy
xlsBookTotal.Range("A" & 1 + i).PasteSpecial xlPasteValues, xlPasteSpecialOperationNone, False, True
xlsBookPart.Close
Next
xlsBookTotal.Save
xlsBookTotal.Close
lblInfo.Caption = "汇总完成!"

MsgBox "汇总完成!" & vbLf & "文件数量:" & intFileCount & vbLf & "消耗时间:" & _
Format(Now() - timeStart, "hh:mm:ss"), vbOKOnly + vbInformation, "汇总完成"
ErrHandle:
If lblInfo.Caption <> "汇总完成!" Then
lblInfo.ForeColor = vbRed
lblInfo.Caption = "操作错误!"
End If
xlsApp.Quit
Set xlsSheetTotal = Nothing
Set xlsSheetPart = Nothing
Set xlsBookTotal = Nothing
Set xlsBookPart = Nothing
Set xlsApp = Nothing
End Sub
全部回答
大概思路是这样的: 建立数组,读取excel然后,计算出记录数量,将数据填充到数组里面 建立新的excel工作簿,直接将数组填充进去; 读取第二张表,照例清空数组,用新表数据填充数组,在通过数组填充到新的excel表里,记住需要制定填充的行号,就是钱一张表的记录数+1。 如此反复,就可以了。
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
河南中医学院针灸推拿职业学院,针灸推拿专业
电影女主的名字叫漫游者的电影
屏蔽百度活链接|百度活链接屏蔽|活链接屏蔽|
java问题,子类能不能重写父类的静态方法??
泉城路新华书店这个地址在什么地方,我要处理
法院查封房子还可以居住吗
叶子幼儿园地址在哪,我要去那里办事
为什么火车都是靠左行驶的
北京大学-电子学系地址有知道的么?有点事想
父母和孩子的缘分有多少
中国建设银行团结路ATM地址在什么地方,想过
美图手机的广角是多少啊?
csol咆哮怒焰 m14 会升级么?
如何规划人生,指定人生目标
南京大学苏州高新技术研究院这个地址在什么地
推荐资讯
恒温水浴锅、油浴锅、沙浴锅都是一样的么?还
电流互感器 升压变压器,电压变比不理解了
医保单位和个人缴纳每月1700到医保账户应该多
tk电竞网咖地址好找么,我有些事要过去
云迪饰品这个地址在什么地方,我要处理点事
经常吃汤粉有什么坏处吗?
容易使女性产生性幻想的词汇
苍溪县广益食品有限公司工会委员会地址有知道
芙蓉兴盛便利超市NO.鄂2138在哪里啊,我有事
汽修专业简介
在一个公司里,大部分都是和老总有亲戚关系的
惠民药房诚信连锁店这个地址在什么地方,我要
手机登qq时,显示手机磁盘不足,清理后重新登
刺客的套装怎么选啊?