Dim App As New MSExcel.Application
try
Dim Wb As MSExcel.Workbook = App.WorkBooks.Open("D:\计划.xls")
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Tables("计划表").StopRedraw()
'注意以下数组中列名称的顺序,必须和Excel表中的列顺序一致
Dim ra = ws.UsedRange
Dim nms() As String = {"生产订单号码","工单行号","物料编码","物料名称","类别说明","部门名称","开工日期","完工日期","生产订单数量","入库数量","完成数量","产品批次","工单状态","订单号","订单行号","客户","备注","软件版本","料况追踪","基板","周需求交期","合同约定交期","生产反馈","修改标记"}
'注意下面的循环变量从1开始,而不是从0开始,因为Excel表的第一行是标题
For n As Integer = 2 To ra.Rows.Count
Dim scddhm As String = ws.cells(n,2).Text
Dim gdhh As String = ws.cells(n,3).text
If DataTables("计划表").Find("生产订单号码 = '" & scddhm & "' and 工单行号 = '" & gdhh & "'") Is Nothing Then '如果不存在同编号的计划表
Dim r As Row = Tables("计划表").AddNew()
For m As Integer = 0 To nms.Length - 1
r(nms(m)) = ws.cells(n,m+2).Value
Next
End If
Next
Tables("计划表").ResumeRedraw()
Tables("计划表").save
msgbox("导入完成")
catch ex as exception
msgbox(ex.message)
app.quit
end try
如果觉得慢,就用二维数组 http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=28089&skin=0