Vb对excel操作的实例

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

操作方法

  • 01

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

  • 02

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

  • 03

    计算成绩用来算成绩。

  • 04

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

  • 05

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

  • 06

    代码也贴出来共享一下。 计算成绩:一年级: Private Sub yinianji_Click() Call 打开工作表 Call 算成绩 (1) kmb(1) = " 语文 ": kmb(2) = " 数学 ": kmb(3) = " 英语 " Sheets(kmb(1)).Select For 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 = 1 End With Next Sheets(kmb(2)).Select For 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 = 1 End With Next Dim hgrs(8)   ' 记录各学校合格人数 For i = 1 To 8 Sheets(xx(i)).Select szl = 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 16 With 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).xkjf End With Next Workbooks.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 With With 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 With Unload excel 操作 End Sub

  • 07

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

  • 08

    哦,还得说明一下,对 excel 的操作前提: Dim xlApp As Excel.Application Dim xlBook As Excel.Workbook Dim xlSheet As Excel.Worksheet 本软件中,我第一次用了自定义类的数据类型。 Private Type banji xxmc As String bjkm As String njxh As Integer xkrs As Integer dkjs As String xkzf As Integer xkjgr As Integer xkyxr As Integer xkjf As Long End 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) 。

(0)

相关推荐

  • 怎样将pdf转换成excel?pdf转excel操作步骤

    不少人电脑中没有安装pdf阅读区无法直接打开pdf文件,其实我们可以将pdf转换成excel格式,怎样将pdf转换成excel?下面我们一起来参考一下pdf转excel操作步骤。 怎样将pdf转换成e ...

  • 电脑上如何进行Excel操作

    Excel是微软办公套软件的一个重要的组成部分,它可以进行各种数据处理.统计分析.辅助决策操作,广泛地应用于管理.金融.统计财经等众多领域.对于做管理.金融.财经方面的学者,学习Excel操作尤为重要 ...

  • excel操作题——设置行高标题行是第二行的2倍

    excel操作题--设置行高,标题行是第二行的2倍 操作方法 01 在excel表格中,要求设置成自动调整列宽和行高,第一行的行高是第二行的2倍,套用表格格式深浅27 02 选中单元格内容区域 03 ...

  • excel操作题——包含标题的表格格式

    excel操作题--包含标题的表格格式 操作方法 01 要求设置表格区各单元格内容水平垂直居中,更改标题字体.字号:套用表格格式中深浅27,包含标题. 02 选中标题行,选择字体"黑体&qu ...

  • excel操作-将城市名称的汉语拼音删除并添加"市"

    excel操作-将城市名称的汉语拼音删除并添加"市" 操作方法 01 要求在工作表中,将A列数据中城市名称的汉语拼音删除,并在城市名后面添加文本"市",如北京市 ...

  • Excel自定义筛选实例

    Excel中的筛选功能,方便我们查看各类数据,Excel的筛选方式,有自动筛选和高级筛选两种,其中,自动筛选,还可以使用自定义功能,下面给你讲解如何使用自定义筛选功能! 首先,如下图,是一个成绩表,有 ...

  • excel操作技巧

    也许你已经在Excel中完成过上百张财务报表,也许你已利用Excel函数实现过上千次的复杂运算,也许你认为Excel也不过如此,甚至了 无新意。但我们平日里无数次重复的得心应手的使用方法只不过是Exc ...

  • Excel迭代运算的实例及概念

    Excel中的迭代运算,可以解决很多问题,同时,迭代运算也给很多学习新手带来困扰。 现在,本站给您详细介绍什么是Excel中的迭代运算,如何使用迭代运算。 一、迭代运算的概念 所谓的迭代运算,没有什么 ...

  • Excel操作应用技巧四则

    单元格是Excel中不可或缺的重要组成员素之一,用好单元格可以让你的办公水平大大提升。下面和大家分享一下几个单元格的技巧。 1.对单元格进行同增同减操作 在Excel中,如果要对某一单元格或某一区域中 ...