试试……
If dlg.ShowDialog = DialogResult.Ok Then '如果用户单击了确定按钮
'排序
Dim App As New MSExcel.Application
Dim Wb As MSExcel.WorkBook = App.WorkBooks.Open(dlg.filename)
Dim Ws As MSExcel.WorkSheet = Wb.WorkSheets(1)
Dim Rg1 As MSExcel.Range = Ws.UsedRange
Dim Rg As MSExcel.Range = Ws.Columns("A:P")
ws.range("a2:P" & Rg1.Rows.Count).sort(key1:=Ws.Range("G3"),header:= MSExcel.XlYesNoGuess.xlyes,Orientation:= MSExcel.XlSortOrientation.xlSortColumns)
wb.save
wb.close
App.quit
'开始导入
Dim Book As New XLS.Book(dlg.FileName)
Dim Sheet1 As XLS.Sheet = Book.Sheets(0)
Dim PBar1 As WinForm.ProgressBar = e.Form.Controls("ProgressBar1")
……
或者全部改为使用vba导入数据,如:http://www.foxtable.com/bbs/dispbbs.asp?BoardID=2&ID=65686&skin=0