怎么在vb中使用excel!

football 2001-11-17 11:38:56
我现在帮别人做一个管理系统。
因为其中包括一个排班表,排一个月所有员工的班次。用datagrid做的话,很难看。
我想直接在vb中使用excel可能会好一点。
但是我不知道怎么用。望大家帮帮忙!
...全文
195 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jshyjyw 2001-11-18
  • 打赏
  • 举报
回复
这是我做的程序的一段:
使用前先引用Excel的对象库。

Private Sub Command3_Click()
Dim exlApp As Excel.Application
Dim exlBook As Excel.Workbook
Dim exlSheet As Excel.Worksheet
Dim sh_index As Integer
Dim num As Long
Dim i, j As Long
Dim rows, cols As Long

On Error Resume Next
Set exlApp = GetObject(, "Excel.Application") 'Excel是否有运行的实例
If Err.Number <> 0 Then
Set exlApp = New Excel.Application
exlApp.Workbooks.Open App.Path + "\rptBookXKCX.xlt"
End If
Err.Clear

On Error GoTo 0

Select Case SSTab1.Tab
Case 0
Adodc1.Refresh
num = Adodc1.Recordset.RecordCount
If num = 0 Then
MsgBox "没有可供输出的数据!", vbOKOnly + 16, "提示"
Exit Sub
End If
rows = 2
For i = 1 To num
exlApp.Sheets(1).Cells(rows, 1) = i
cols = 2
For j = 1 To 5
exlApp.Sheets(1).Cells(rows, cols) = Adodc1.Recordset.Fields(j)
cols = cols + 1
Next j
rows = rows + 1
Adodc1.Recordset.MoveNext
Next i
With exlApp.Sheets(1)
.Range(.Cells(2, 1), .Cells(rows - 1, cols - 1)).Borders.LineStyle = xlContinuous
End With
exlApp.Sheets(1).Activate
exlApp.Visible = True
Case 1
Adodc2.Refresh
num = Adodc2.Recordset.RecordCount
If num = 0 Then
MsgBox "没有可供输出的数据!", vbOKOnly + 16, "提示"
Exit Sub
End If
exlApp.Sheets(2).Cells(1, 3) = Adodc2.Recordset.Fields("课程")
rows = 3
For i = 1 To num
exlApp.Sheets(2).Cells(rows, 1) = i
exlApp.Sheets(2).Cells(rows, 2) = Adodc2.Recordset.Fields("学号")
exlApp.Sheets(2).Cells(rows, 3) = Adodc2.Recordset.Fields("姓名")
exlApp.Sheets(2).Cells(rows, 4) = Adodc2.Recordset.Fields("班级")
exlApp.Sheets(2).Cells(rows, 5) = Adodc2.Recordset.Fields("教师")
rows = rows + 1
Adodc2.Recordset.MoveNext
Next i
With exlApp.Sheets(2)
.Range(.Cells(3, 1), .Cells(rows - 2, 5)).Borders.LineStyle = xlContinuous
End With
exlApp.Sheets(2).Activate
exlApp.Visible = True
Case 2
Adodc3.Refresh
num = Adodc3.Recordset.RecordCount
If num = 0 Then
MsgBox "没有可供输出的数据!", vbOKOnly + 16, "提示"
Exit Sub
End If
exlApp.Sheets(3).Cells(1, 3) = Adodc3.Recordset.Fields("教师")
rows = 3
For i = 1 To num
exlApp.Sheets(3).Cells(rows, 1) = i
exlApp.Sheets(3).Cells(rows, 2) = Adodc3.Recordset.Fields("学号")
exlApp.Sheets(3).Cells(rows, 3) = Adodc3.Recordset.Fields("姓名")
exlApp.Sheets(3).Cells(rows, 4) = Adodc3.Recordset.Fields("班级")
exlApp.Sheets(3).Cells(rows, 5) = Adodc3.Recordset.Fields("课程")
rows = rows + 1
Adodc3.Recordset.MoveNext
Next i
With exlApp.Sheets(3)
.Range(.Cells(3, 1), .Cells(rows - 1, 5)).Borders.LineStyle = xlContinuous
End With
exlApp.Sheets(3).Activate
exlApp.Visible = True
End Select

End Sub

你试试看。
jafi 2001-11-18
  • 打赏
  • 举报
回复
已经发啦!
zbcool 2001-11-18
  • 打赏
  • 举报
回复
to(jafi):也发给我一些吧
8zihu@163.com
heyijpn 2001-11-18
  • 打赏
  • 举报
回复
to(jafi):也发给我一些吧
hychy@sina.com
ltolll 2001-11-18
  • 打赏
  • 举报
回复
to(jafi):也发给我一些吧
ltoiii@263.net
xiaoxiaomuyu 2001-11-18
  • 打赏
  • 举报
回复
用OLE容器可以使用excel.
jafi 2001-11-18
  • 打赏
  • 举报
回复
用vb操作excel的想法确实很好,至少用excel和其他的报表控件相比的话,excel是最强大的。日本鬼子很喜欢用这个。缺点是,人家必须安装excel
jafi 2001-11-18
  • 打赏
  • 举报
回复
把你的信箱地址发给我,我给你示例(邮件很多,请发的时候注明问题)

mrjafi@21cn.com
LANDEHUTU 2001-11-18
  • 打赏
  • 举报
回复
装了OFFICE就有一个VBA的帮助文件,里面有例程,如果只是基本操作,2小时足够了。
feihong0233 2001-11-17
  • 打赏
  • 举报
回复
用数据报表喽,
很好看啊。

7,763

社区成员

发帖
与我相关
我的任务
社区描述
VB 基础类
社区管理员
  • VB基础类社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧