Select right(Orders,3) as NewID from [表名] where GP9<> "" Order by NewID
没有用过excel来建立数据连接,也不清楚你这个是否满足SQL查询的格式。
如果是直接创建excel对象进行操作的话,就是简单的循环、判断以及字符串处理, 结果放在一个动态数组中,没有什么难的。
你自己先试着写代码,遇到具体的问题再来问。除非你什么都不懂,就是来求作业的。
Dim cnn As New ADODB.Connection, RS As New ADODB.Recordset List1.Clear cnn.Open "Provider=Microsoft.Ace.OLEDB.12.0;Extended Properties=Excel 12.0;Data Source=" & App.Path & "\Excel表.xlsx" 'Excel表连接语句,Excel的文件名称自己修改 Sql = "select * from [Sheet1] Where GP9<>"" Order BY 编号" 'GP9列筛选非空项,筛选后编号列为升序排序 RS.Open Sql, cnn, 3, 2 '打开工作表 Do While Not RS.EOF List1.AddItem Right(RS!Orders, 3) '提取Orders列的后3位数导入到VB的listbox RS.MoveNext Loop RS.Close cnn.Close
Private Sub Command1_Click() On Error GoTo err Dim Xls, Xlsbook, Xlssheet Set Xls = CreateObject("Excel.Application") Xls.Visible = False ' CommonDialog1.FileName="" '清除上次的记录 CommonDialog1.ShowOpen if CommonDialog1.FileName="" then exit sub '没有指定文件,退出sub Set Xlsbook = Xls.Workbooks.Open(CommonDialog1.FileName) '打开共公对话框,按“取消”也会导入上次导入的文件,不知是什么原因?也请版主帮忙修改,感谢了 Set Xlssheet = Xlsbook.Worksheets(1) ' Xlssheet.Activate ' N1=3 '根据你的截图是从第三行开始的 N2=10 '上限自己修改,或者给一个很大的数,在循环体中通过判断退出循环也可以 for i = N1 to N2 if Xlssheet.Cells(4, 7)<>"" then List1.AddItem right(Xlssheet.Cells(4, 2) ,3) next i Xls.Quit Set Xlssheet = Nothing Set Xlsbook = Nothing Set Xls = Nothing err: Exit Sub End Sub
[此贴子已经被作者于2017-7-26 23:56编辑过]