以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]Excel合并后删除源文件时提示文件正在使用  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=188135)

--  作者:洮沙
--  发布时间:2023/9/4 12:12:00
--  [求助]Excel合并后删除源文件时提示文件正在使用
老师,用以下代码合并Excel数据后,删除源文件提示正在使用,该如何解决?谢谢!
Dim dlg As New OpenFileDialog \'定义一个新的OpenFileDialog
dlg.Filter = "Excel文件|*.xls;*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    Dim ifo As New FileInfo(dlg.FileName)
    If ifo.Extension <> ".xls" And ifo.Extension <> ".xlsx" Then
        MessageBox.Show("选择的是非Excel格式文件,请重新选择!", "提示")
        Return
    End If
    Dim sheetname As String
    Dim App As New MSExcel.Application
    Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
    sheetname = Wb.WorkSheets(1).Name & "$"
    App.Quit
    
    Dim mg As New Merger
    mg.SourcePath = dlg.FileName
    mg.Format = "excel" \'指定格式
    mg.SourceTableName = sheetname \'指定要合并的表
    mg.DataTableName = "员工花名册" \'指定接收数据的表
    mg.Merge() \'开始合并
End If

图片点击可在新窗口打开查看此主题相关图片如下:微信截图_20230904121018.png
图片点击可在新窗口打开查看


--  作者:有点蓝
--  发布时间:2023/9/4 13:32:00
--  
不要使用vba,使用XLS.Book

……
Dim sheetname As String
Dim Book As New XLS.Book(dlg.FileName)
sheetname = Book.Sheets(0).Name & "$"
Dim mg As New Merger
mg.SourcePath = dlg.FileName
……