在VB中操作Excel的问题

在VB的窗体中有4个TXETbox控件,把EXCEL里的数据显示在这4个控件里(EXCEL里的表格是4行四列),还有2个按钮控件,分别是“下一条”“上一条”。运行时在四个TEXTBOX控件里显示EXCEL表里的第一行的四个数据,按一下“下一条”会显示EXCEL表里的第二行,按“上一条”会显示上以行的数据。能实现这些的代码,哪位高手能帮帮我啊?会再加分的!万分感激~~~~

把以下代码放入代码窗口中运行即可:
Option Explicit
Dim mxlApp As Excel.Application
Dim mxlBook As Excel.Workbook
Dim mxlSheet As Object
Dim H As Integer
Private Sub Command1_Click() '下一行
If H < 4 Then
H = H + 1
Text1.Text = mxlSheet.Cells(H, 1)
Text2.Text = mxlSheet.Cells(H, 2)
Text3.Text = mxlSheet.Cells(H, 3)
Text4.Text = mxlSheet.Cells(H, 4)
Else
MsgBox "已经是最后一行!"
End If
End Sub

Private Sub Command2_Click() '上一行
If H > 1 Then
H = H - 1
Text1.Text = mxlSheet.Cells(H, 1)
Text2.Text = mxlSheet.Cells(H, 2)
Text3.Text = mxlSheet.Cells(H, 3)
Text4.Text = mxlSheet.Cells(H, 4)
Else
MsgBox "已经是第一行!"
End If

End Sub

Private Sub Form_Load()
'先在工程中引用Microsoft Excel 11.0 Object Library
Dim R As String, i As Integer
Dim sSource, sDestination As String
Set mxlApp = New Excel.Application
Set mxlApp = CreateObject("Excel.Application")
R = "c:\1.xls"
H = 1
mxlApp.Visible = False
Set mxlBook = mxlApp.Workbooks.Open(R)
Set mxlSheet = mxlBook.Worksheets(1)
Text1.Text = mxlSheet.Cells(H, 1)
Text2.Text = mxlSheet.Cells(H, 2)
Text3.Text = mxlSheet.Cells(H, 3)
Text4.Text = mxlSheet.Cells(H, 4)

End Sub

Private Sub Form_Terminate() '程序退出时,关闭Excel
mxlBook.Application.Quit
End Sub
温馨提示:答案为网友推荐,仅供参考
第1个回答  2009-03-31
这个很容易的..当初我把数据库里面资料放入EXCEL里面去打印...

只是不记得代码了...原谅!! ^_^

几天内要是还没有高手帮你解决..我回去帮你把代码拷过来吧...
第2个回答  2009-03-31
帮你写了下,建好工程后要先引用Microsoft Excel 11.0 Object Library
,然后输入下面代码,我这里用text5作了个指针的功能。还有就是我这里excel的默认范围是(a1:d4)
Private Sub CommandButton1_Click()'导入excel
text5.caption="0"
dim xl,xlbook,xlsheet as object
set xl = CreateObject("Excel.Application")
set xlbook= objExcel.Workbooks.Open("你存的excel路径名")
xl.Visible = true'这里可以改成false 让其不显示
set xlsheet = objExcel.Worksheets("sheet1")'以上是打开excel文件
end sub

Private Sub CommandButton2_Click()'下一条的作用
n=val(text5)'这里设置一个text5,相当一个指针的作用,开始时把
'text5.caption设置成0
n=n+1
if n>4 then
msgbox "已经为最后行"
exit sub
else
text1.text=xlsheet.cells(n,1)
text2.text=xlsheet.cells(n,2)
text3.text=xlsheet.cells(n,3)
text4.text=xlsheet.cells(n,4)'我默认的你的excel的范围是(A1:D4)的范围
text5.caption=n
end if
end sub

Private Sub CommandButton3_Click()'上一条的作用
n=val(text5)'这里设置一个text5,相当一个指针的作用,开始时把
'text5.caption设置成0
n=n-1
if n<0 then
msgbox "已经为第一行"
exit sub
else
text1.text=xlsheet.cells(n,1)
text2.text=xlsheet.cells(n,2)
text3.text=xlsheet.cells(n,3)
text4.text=xlsheet.cells(n,4)'我默认的你的excel的范围是(A1:D4)的范围
text5.caption=n
end if
end sub
第3个回答  2009-03-31
'添加引用:microsoft excel 11.0 object library
Dim xlsApp As Excel.Application
Dim xlsBook1 As Excel.Workbook
Dim xlsSheet1 As Excel.Worksheet
Dim i As Integer
Dim fileName As String

Private Sub Command1_Click()
'上一个
If i >= 2 Then
i = i - 1
If i = 2 Then
Command1.Enabled = False
End If
Text1.Text = xlsSheet1.Cells(i, 1)
Text2.Text = xlsSheet1.Cells(i, 2)
Text3.Text = xlsSheet1.Cells(i, 3)
Text4.Text = xlsSheet1.Cells(i, 4)
End If
Command2.Enabled = True
End Sub

Private Sub Command2_Click()
'下一个
i = i + 1
Text1.Text = xlsSheet1.Cells(i, 1)
Text2.Text = xlsSheet1.Cells(i, 2)
Text3.Text = xlsSheet1.Cells(i, 3)
Text4.Text = xlsSheet1.Cells(i, 4)

If xlsSheet1.Cells(i + 1, 1) = "" Then
Command2.Enabled = False
End If

Command1.Enabled = True
End Sub

Private Sub Form_Load()
fileName = "C:\Documents and Settings\Administrator\桌面\新建文件夹\test.xls"
Set xlsApp = New Excel.Application
Set xlsBook1 = xlsApp.Workbooks.Open(fileName)
Set xlsSheet1 = xlsApp.Worksheets("sheet1")

'默认显示第一条记录
Text1.Text = xlsSheet1.Cells(2, 1)
Text2.Text = xlsSheet1.Cells(2, 2)
Text3.Text = xlsSheet1.Cells(2, 3)
Text4.Text = xlsSheet1.Cells(2, 4)
i = 2
Command1.Enabled = False
End Sub

Private Sub Form_Unload(Cancel As Integer)
'xlsApp.Quit
xlsApp.Application.Quit '这条语句和上边一条语句的区别是什么
Set xlsApp = Nothing
End Sub
第4个回答  2009-03-31
Text1.Text = mxlSheet.Cells(i, 1)
......
相似回答