Vb对excel操作的实例

禁心尽力 提问于2024-06-02 17:56:10
推荐回答

最近,由于工作关系,我用?vb6.0?做了一个计算成绩的软件,由于我不会数据库技术,同行对excel?应用又比较普遍,所以就用?vb6.0?操作?excel?完成了成绩统计的任务。

操作方法

先说说窗体,很简单,只运用了菜单,由此来调用程序代码。窗体命名为?excel?操作,共五个一级菜单。

创建表册用来制作所用表格。

计算成绩用来算成绩。

模拟运算用来测试软件,设置了两个子菜单,一个填随机生成的数据。有了数据就可以计算成绩了,看看效果如何。

测试完了就可以清空数据了,清空成绩册中的基础数据以后再计算一次成绩就基本可以使表册恢复原样了。其实,我这是多此一举,回头一想,只需要重新创建所用表册就行了。还画蛇添足了俩菜单:计算器和退出。

代码也贴出来共享一下。计算成绩:一年级:Private Sub yinianji_Click()Call?打开工作表Call?算成绩?(1)kmb(1) = "语文?" kmb(2) = "数学?" kmb(3) = "英语?"Sheets(kmb(1)).SelectFor i = 1 To 8?'记录一年级语文数据With bj(i).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(1).njxh = 1End WithNextSheets(kmb(2)).SelectFor i = 1 To 8?'记录一年级数学数据With bj(i + 8).xxmc = Cells(2, i + 1).dkjs = Cells(3, i + 1).xkrs = Cells(4, i + 1).xkzf = Cells(5, i + 1).xkjgr = Cells(6, i + 1).xkyxr = Cells(7, i + 1).xkjf = Cells(8, i + 1).bjkm = kmb(2).njxh = 1End WithNextDim hgrs(8)?'记录各学校合格人数For i = 1 To 8Sheets(xx(i)).Selectszl = Application.WorksheetFunction.Match("总分?" Range([a2], [f2])) '总分所在列即合格人数所在列szh = Application.WorksheetFunction.Match("合格人数?" Range(Cells(2, szl), Cells(80, szl))) '“合格人数”所在行hgrs(i) = Cells(szh + 2, szl)Next'向学校总评表过录一年级数据nj(1) = "一年级?" nj(2) = "二年级?" nj(3) = "三年级?" nj(4) = "四年级?" nj(5) = "五年级" nj(6) = "六年级?"Workbooks.Open FileName:=ActiveWorkbook.Path & "\?学校总评?xls"For i = 1 To 16With Sheets("积分?")Sheets("积分?").Select[a1] = "年级?" [a2] = "学科?" [a3] = "学校?" [a4] = "人数?" [a5] = "总分?" [a6] = "及格人数?" [a7] = "优秀人数?" [a8] = "积分?"Cells(1, i + 1) = nj(bj(i).njxh).Cells(2, i + 1) = bj(i).bjkm.Cells(3, i + 1) = bj(i).xxmc.Cells(4, i + 1) = bj(i).xkrs.Cells(5, i + 1) = bj(i).xkzf.Cells(6, i + 1) = bj(i).xkjgr.Cells(7, i + 1) = bj(i).xkyxr.Cells(8, i + 1) = bj(i).xkjfEnd WithNextWorkbooks.Open FileName:=ActiveWorkbook.Path & "\?上报?xls"With Sheets("中心校?") '过录中心校成绩.Cells(bj(1).njxh * 2 + 2, 3) = bj(1).xkrs + bj(2).xkrs + bj(6).xkrs?'语文.Cells(bj(1).njxh * 2 + 2, 4) = bj(1).xkzf + bj(2).xkzf + bj(6).xkzf.Cells(bj(1).njxh * 2 + 2, 5) = Round(.Cells(bj(1).njxh * 2 + 2, 4) / .Cells(bj(1).njxh * 2 + 2, 3), 2).Cells(bj(1).njxh * 2 + 2, 6) = bj(1).xkjgr + bj(2).xkjgr + bj(6).xkjgr.Cells(bj(1).njxh * 2 + 2, 7) = bj(1).xkyxr + bj(2).xkyxr + bj(6).xkyxr.Cells(bj(1).njxh * 2 + 2, 8) = hgrs(1) + hgrs(2) + hgrs(6).Cells(bj(1).njxh * 2 + 3, 3) = bj(9).xkrs + bj(10).xkrs + bj(14).xkrs?'数学.Cells(bj(1).njxh * 2 + 3, 4) = bj(9).xkzf + bj(10).xkzf + bj(14).xkzf.Cells(bj(1).njxh * 2 + 3, 5) = Round(.Cells(bj(1).njxh * 2 + 3, 4) / .Cells(bj(1).njxh * 2 + 3, 3), 2).Cells(bj(1).njxh * 2 + 3, 6) = bj(9).xkjgr + bj(10).xkjgr + bj(14).xkjgr.Cells(bj(1).njxh * 2 + 3, 7) = bj(9).xkyxr + bj(10).xkyxr + bj(14).xkyxr.Cells(bj(1).njxh * 2 + 3, 8) = hgrs(1) + hgrs(2) + hgrs(6)End WithWith Sheets("普小?") '过录普小成绩.Cells(bj(1).njxh * 2 + 2, 3) = bj(3).xkrs + bj(4).xkrs + bj(5).xkrs + bj(7).xkrs + bj(8).xkrs '语文.Cells(bj(1).njxh * 2 + 2, 4) = bj(3).xkzf + bj(4).xkzf + bj(5).xkzf + bj(7).xkzf + bj(8).xkzf.Cells(bj(1).njxh * 2 + 2, 5) = Round(.Cells(bj(1).njxh * 2 + 2, 4) / .Cells(bj(1).njxh * 2 + 2, 3), 2).Cells(bj(1).njxh * 2 + 2, 6) = bj(3).xkjgr + bj(4).xkjgr + bj(5).xkjgr + bj(7).xkjgr + bj(8).xkjgr.Cells(bj(1).njxh * 2 + 2, 7) = bj(3).xkyxr + bj(4).xkyxr + bj(5).xkyxr + bj(7).xkyxr + bj(8).xkyxr.Cells(bj(1).njxh * 2 + 2, 8) = hgrs(3) + hgrs(4) + hgrs(5) + hgrs(7) + hgrs(8).Cells(bj(1).njxh * 2 + 3, 3) = bj(11).xkrs + bj(12).xkrs + bj(13).xkrs + bj(15).xkrs + bj(16).xkrs '数学.Cells(bj(1).njxh * 2 + 3, 4) = bj(11).xkzf + bj(12).xkzf + bj(13).xkzf + bj(15).xkzf + bj(16).xkzf.Cells(bj(1).njxh * 2 + 3, 5) = Round(.Cells(bj(1).njxh * 2 + 3, 4) / .Cells(bj(1).njxh * 2 + 3, 3), 2).Cells(bj(1).njxh * 2 + 3, 6) = bj(11).xkjgr + bj(12).xkjgr + bj(13).xkjgr + bj(15).xkjgr + bj(15).xkjgr.Cells(bj(1).njxh * 2 + 3, 7) = bj(11).xkyxr + bj(12).xkyxr + bj(13).xkyxr + bj(15).xkyxr + bj(16).xkyxr.Cells(bj(1).njxh * 2 + 3, 8) = hgrs(3) + hgrs(4) + hgrs(5) + hgrs(7) + hgrs(8)End WithUnload excel?操作End Sub

框架已经完成,可以看出,卸载窗体的动作很频繁。这是我调试的结果,这样才能保证每次的动作都能顺利完成。我想这就是单窗体的特点吧。被调用的程序模块也挺多的,系统包也调用了,最频繁的就是打开文件对话框的调用。

哦,还得说明一下,对?excel?的操作前提:Dim xlApp As Excel.ApplicationDim xlBook As Excel.WorkbookDim xlSheet As Excel.Worksheet本软件中,我第一次用了自定义类的数据类型。Private Type banjixxmc As Stringbjkm As Stringnjxh As Integerxkrs As Integerdkjs As Stringxkzf As Integerxkjgr As Integerxkyxr As Integerxkjf As LongEnd Type并设了一数组?Dim bj(16) As banji?来从年级成绩册向学校总评表过录数据。设了八个学校名称?Dim xx(8)?设了?3?个科目表?Dim kmb(1 To 3) As String?六个年级?Dim nj(1 To 6) As String?班级人数为六个年级八个学校的二维数组?Dim gbrs(6, 8)?

特别提示

由于篇幅限制,有些程序没有发出来。

禁心尽力 2024-06-07 10:14:56

相关推荐

老人跑步最佳时间是什么时候 发布时间 2024-06-23

老人跑步最佳时间是什么时候?跑步前首先要以仅仅比原地颠快一点的速度慢跑6至8分钟,让心率慢慢地增加到每分钟100下左右,加快血液在骨骼肌的循环,促进关节分泌润滑液,身体微微出汗即可。老人如何跑步健身?一起和漂亮女人街看看吧。跑步对所有年龄段人群的健康所带来的益处大致相同。这些措施包括减少心脏病,糖尿病,高血压和癌症...
查看全文>

孕妇拉肚子后肚子胀气应该怎么办? 发布时间 2024-06-23

孕育新生命是个幸福又痛苦的过程。准妈妈在这几个月了,忍受了很多。前三个月的呕吐。以及随着孩子渐渐长大,内脏器官被压迫着,甚至呼吸都比较困难。还有时候会胀气。准妈妈胀气是由于饮食习惯、荷尔蒙改变,以及活动量减少而引起的。这里有几个消除准妈妈胀气的方法,一起来了解了解吧。1.少量多餐─帮助胃部消化速度进行。要有效纾缓胀...
查看全文>

三文鱼降低患前列腺癌风险-吃什么对前列腺好? 发布时间 2024-06-23

坚果富含有益前*腺健康的微量元素硒。1盎司坚果(约28克)含硒量是日推荐量的10倍。研究表明,每周吃几盎司坚果等富硒食物可降低前*腺癌风险。三文鱼降低患前*腺癌风险-吃什么对前*腺好?吃什么对前*腺好?坚果。坚果富含有益前*腺健康的微量元素硒。1盎司坚果(约28克)含硒量是日推荐量的10倍。研究表明,每周吃几盎司坚...
查看全文>

孕妇尿液有白色沉淀物是为什么 发布时间 2024-06-23

对于孕妇来说,一定要多注意自己的身体健康,一旦有什么疾病,就会影响母子的健康。有些孕妇会发现,自己的尿液中有一些白色沉淀物,那么,这种状况是正常的吗?会不会对孩子还是妈妈有危害?今天呢,小编就和大家介绍一下,孕妇尿液有白色沉淀物是什么原因导致的。孕妇尿液中出现白色混浊物,可能的原因有蛋白尿、脓尿、乳糜尿、结晶尿和前...
查看全文>

我们如何对待“熊孩子” 发布时间 2024-06-23

什么是熊孩子?就是那些上课特别顽皮的孩子,怎么样可以让他们好好上课呢?据媒体报道,南京一所小学三年级的一个班级竟然有30多名孩子没到校。起因是班上有4个小男生非常调皮,他们在教室后面打闹,吵得老师没法正常上课,老师和家长想了各种招,包括每天安排2名家长代表“陪读”等,但都不管用。矛盾持续升级,最终导致其他学生家长一...
查看全文>