vb调用EXCEL中的数据 10
vb调用EXCEL中的数据悬赏分:25-离问题结束还有14天15小时比如在excel里A列是学生名称,B列是性别,C列是所在系,在VB里有三个文本框T1,T2,T3。工程...
vb调用EXCEL中的数据
悬赏分:25 - 离问题结束还有 14 天 15 小时
比如在excel里A列是学生名称,B列是性别,C列是所在系,在VB里有三个文本框T1,T2,T3。
工程完成后可以实现在T1输入学生名称后T2,T3也要出现相应信息
我研究很久了就是没进展,在这里请教VB高手了
.大家帮帮忙吧!谢谢...
问题补充:高手请教拉
access也行啊,能写段源代码吗?? 展开
悬赏分:25 - 离问题结束还有 14 天 15 小时
比如在excel里A列是学生名称,B列是性别,C列是所在系,在VB里有三个文本框T1,T2,T3。
工程完成后可以实现在T1输入学生名称后T2,T3也要出现相应信息
我研究很久了就是没进展,在这里请教VB高手了
.大家帮帮忙吧!谢谢...
问题补充:高手请教拉
access也行啊,能写段源代码吗?? 展开
3个回答
展开全部
操作EXCEL,没调试过,自行调试:
在工程中运用 Excel 对象模型,必须引用 Excel Object Library
工程--> 引用 加入 Excel Object Library
声明公共变量
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
在FORM LOAD 事件内输入:
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("d:\vbExcel.xls") '打开已经存在的EXCEL工件簿文件
'd:\vbExcel.xls要改成你的EXCEL档所在路径
xlApp.Visible = False '设置EXCEL对象不可见
Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表,sheet1要改成学生档案所在表名
然后在T1的CHANGE事件内写:
Dim intRow as integer
Cells.Find(What:=T1.TEXT, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, MatchByte:=False, SearchFormat:=False).Activate
intRow=activecell.row
t2.text=xlsheet.cells(introw,2)
t3.text=xlsheet.cells(introw,3)
在FORM UNLOAD事件内写:
xlbook.Close
xlapp.DisplayAlerts = False
xlApp.Quit
在工程中运用 Excel 对象模型,必须引用 Excel Object Library
工程--> 引用 加入 Excel Object Library
声明公共变量
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet As Excel.Worksheet
在FORM LOAD 事件内输入:
Set xlApp = CreateObject("Excel.Application") '创建EXCEL对象
Set xlBook = xlApp.Workbooks.Open("d:\vbExcel.xls") '打开已经存在的EXCEL工件簿文件
'd:\vbExcel.xls要改成你的EXCEL档所在路径
xlApp.Visible = False '设置EXCEL对象不可见
Set xlSheet = xlBook.Worksheets("Sheet1") '设置活动工作表,sheet1要改成学生档案所在表名
然后在T1的CHANGE事件内写:
Dim intRow as integer
Cells.Find(What:=T1.TEXT, After:=ActiveCell, LookIn:=xlFormulas, LookAt:= _
xlPart, SearchOrder:=xlByRows, SearchDirection:=xlNext, MatchCase:=False _
, MatchByte:=False, SearchFormat:=False).Activate
intRow=activecell.row
t2.text=xlsheet.cells(introw,2)
t3.text=xlsheet.cells(introw,3)
在FORM UNLOAD事件内写:
xlbook.Close
xlapp.DisplayAlerts = False
xlApp.Quit
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
Excel可以实现,不过我觉得XML和数据库实现起来更方便快捷,下面是Access的例子建立了一个数据库 a.mdb
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Form_Load()
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "a.mdb;Persist Security Info=False"
conn.Open
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set conn = Nothing
conn.Close
End Sub
Private Sub Text1_LostFocus()
If Text1.Text <> "" Then
Set rs = conn.Execute("select * form a where 名字 = '" & Text1.Text & "' ")
If rs.RecordCount = 0 Then
Set rs = Nothing
rs.Close
End If
rs.MoveFirst
Text2.Text = rs("性别")
Text3.Text = rs("系")
Set rs = Nothing
rs.Close
End If
End Sub
Dim conn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Private Sub Form_Load()
conn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source= " & App.Path & "a.mdb;Persist Security Info=False"
conn.Open
End Sub
Private Sub Form_Unload(Cancel As Integer)
Set conn = Nothing
conn.Close
End Sub
Private Sub Text1_LostFocus()
If Text1.Text <> "" Then
Set rs = conn.Execute("select * form a where 名字 = '" & Text1.Text & "' ")
If rs.RecordCount = 0 Then
Set rs = Nothing
rs.Close
End If
rs.MoveFirst
Text2.Text = rs("性别")
Text3.Text = rs("系")
Set rs = Nothing
rs.Close
End If
End Sub
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用Excel 倒没试过,如果你把Excel转为Access数据库,再用VB来实现的话并不困难
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询