以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  EXCEL导入问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=69257)

--  作者:qqking
--  发布时间:2015/6/2 11:34:00
--  EXCEL导入问题
请问下面的代码如何在导入前把EXCEL文件中   -  - 的替换成空,还有实现同时多个EXCEL文件导入?谢谢


Dim dlg As New OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx" \'设置筛选器
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    DataTables("dkye").StopRedraw
    Dim App As New MSExcel.Application
    try
        Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.FileName)
        Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
        Dim Rg As MSExcel.Range = Ws.UsedRange
        Dim ary = rg.value
        For n As Integer = 5 To rg.Rows.Count - 1
            Dim ro As Row = Tables("dkye").AddNew
            For i As Integer = 0 To Tables("dkye").Cols.Count - 6
                ro(i) = ary(n,i+1)
                ws.usedrange.replace ("    -  -","")
            Next
        Next
        MessageBox.Show("导入成功!","恭喜!")
    catch ex As exception
        msgbox(ex.message)
        MessageBox.Show("导入失败!","恭喜!")
    finally
        DataTables("dkye").ResumeRedraw
        app.quit
    End try
End If

--  作者:Bin
--  发布时间:2015/6/2 11:38:00
--  
1.多文件看实例二 http://www.foxtable.com/help/topics/0328.htm

2.你要替换哪里的   -     ?

--  作者:qqking
--  发布时间:2015/6/2 11:54:00
--  EXCEL导入问题
整表数据
[此贴子已经被作者于2015/6/2 11:55:32编辑过]

--  作者:Bin
--  发布时间:2015/6/2 11:55:00
--  
ro(i) = ary(n,i+1) 

这句代码 改为

ro(i) = ary(n,i+1).replace ("    -  -","")

--  作者:大红袍
--  发布时间:2015/6/2 12:02:00
--  
Dim dlg As New OpenFileDialog
dlg.Filter= "Excel文件|*.xls;*.xlsx" \'设置筛选器
dlg.MultiSelect = True
If dlg.ShowDialog = DialogResult.Ok Then \'如果用户单击了确定按钮
    DataTables("dkye").StopRedraw
    Dim App As New MSExcel.Application
    try
        app.DisplayAlerts = False
        For Each f As String In dlg.FileNames
            Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(f)
            Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
            Dim Rg As MSExcel.Range = Ws.UsedRange
            app.Selection.Replace(What:="    -  -", Replacement:="", LookAt:=2,SearchOrder:=1, MatchCase:=False, SearchFormat:=False,ReplaceFormat:=False)
            Dim ary = rg.value
            For n As Integer = 5 To rg.Rows.Count - 1
                Dim ro As Row = Tables("dkye").AddNew
                For i As Integer = 0 To Tables("dkye").Cols.Count - 6
                    ro(i) = ary(n,i+1)
                Next
            Next
        Next
        MessageBox.Show("导入成功!","恭喜!")
    catch ex As exception
        msgbox(ex.message)
        MessageBox.Show("导入失败!","恭喜!")
    finally
        DataTables("dkye").ResumeRedraw
        app.quit
    End try
End If

--  作者:qqking
--  发布时间:2015/6/2 12:03:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150602120158.png
图片点击可在新窗口打开查看

--  作者:大红袍
--  发布时间:2015/6/2 12:10:00
--  
ro(i) = Cstr(ary(n,i+1)).replace ("    -  -","")

--  作者:qqking
--  发布时间:2015/6/2 14:54:00
--  
成功导入了,谢谢两位版主
--  作者:qqking
--  发布时间:2015/6/4 0:30:00
--  
换了台电脑导入报错:

图片点击可在新窗口打开查看此主题相关图片如下:qq图片20150604003000.png
图片点击可在新窗口打开查看


--  作者:Bin
--  发布时间:2015/6/4 8:39:00
--  
建议您用这个方法:
http://www.foxtable.com/help/topics/1485.htm

先找出是哪一行出错,然后分析原因,搞不定,可以在论坛发帖,贴出代码,并告诉我们运行到哪一行出错,以及错误提示。